【问题标题】:Git sparse checkout without leading directories [duplicate]没有前导目录的Git稀疏结帐[重复]
【发布时间】:2016-05-07 22:56:51
【问题描述】:

我了解如何在 Git 中配置稀疏结帐,但我想知道是否可以消除前导目录。例如,假设我有一个 Git 存储库,其文件夹结构如下:

  • 文件夹 1/foo
  • folder2/foo/bar/stuff
  • 文件夹3/另一个/foo/bar/stuff2

我只想要stuff2 中的内容。对于这些目录的稀疏检出,.git/info/spare-checkout 文件如下所示:

folder3/another/foo/bar/stuff2/

我的问题是在完成稀疏结帐后,我没有在我的目录根目录中看到stuff2stuff2 的内容;我看到了folder3,然后看到了指向stuff2 的所有子目录。

我猜这个问题的答案是 Git 不可能,但我只是想确定一下。这是我想念的一个(也是唯一的)SVN 行为;能够运行 svn co https://url.com/myrepo/folder3/another/foo/bar/stuff2 . 并将内容转储到当前目录中。

【问题讨论】:

  • git checkout <commit> folder3/another/foo/bar/stuff2 缺少什么?我可能不明白这个问题......
  • 这个问题不是重复的,据我所知还没有回答。问题不在于如何进行稀疏检出(op 知道这一点)或如何避免完整的存储库克隆(--depth 0)。问题是如何避免使用稀疏签出获得完整的深层目录结构。回答stackoverflow.com/questions/180052/…注意到不可能,但没有解释,已经5岁了。

标签: git directory-structure sparse-checkout


【解决方案1】:

像 git hub 这样的一些工具可以直接查看给定的文件夹。然而,在 git 中一次只对一个文件夹进行操作是禁止的,因为必须存在整个存储库才能执行新提交的哈希并为提交进行差异

这里也有讨论How to git-pull all but one folder

【讨论】:

  • 在@DominicEU 的回答中查看我的评论
  • 据我了解,您在 git 中的文件要放在 /path/to/config 中。我会检查 git 存储库的内容,某些地方是永久的。然后在 git 中创建指向文件的符号链接,将链接放在 /path/to/config.xml 中。如果这对您有用,我可以将命令放在另一个答案中。
  • Mike:技术上是相反的;我在 /path/to/config 中有文件,当前 not 在 Git 中。我创建了要放置/path/to/config 文件的目录(又名stuff2 目录),但遇到了我描述的问题。
  • 对,所以首先将配置文件复制到您要存储它们的 git 存储库。然后在 /path/to/config 中创建一个符号链接。然后,当 git repo 更改时,文件将被更新。
  • 这个答案没有考虑稀疏结帐,并且自 1.7 版以来是错误的。似乎斯科特知道的比答案提供的要多。
猜你喜欢
  • 2020-11-23
  • 2012-03-23
  • 1970-01-01
  • 1970-01-01
  • 2016-09-07
  • 1970-01-01
  • 2019-11-19
  • 2015-05-05
  • 2016-06-18
相关资源
最近更新 更多