【发布时间】:2016-09-07 22:48:12
【问题描述】:
我有一个仓库:hello.git。我能够执行稀疏结帐:
sparse checkout path: /test/test1
现在我的工作区中有这个:
.../workspace/test/test1/content
我想要以下:
.../workspace/content
是否可以只签出您描述的路径的内容?
【问题讨论】:
标签: git jenkins sparse-checkout
我有一个仓库:hello.git。我能够执行稀疏结帐:
sparse checkout path: /test/test1
现在我的工作区中有这个:
.../workspace/test/test1/content
我想要以下:
.../workspace/content
是否可以只签出您描述的路径的内容?
【问题讨论】:
标签: git jenkins sparse-checkout
这在 git 中是不可能的。
当您在稀疏模式下结帐时,git 仅更新与您在 $GIT_DIR/info/sparse-checkout 中的配置匹配的条目(这是由 Jenkins 上的 Git 插件设置的)。
Git 不支持在结账时更改工作树的根。因此,当您进行稀疏检出时,您将始终拥有所选文件的整个目录结构。
【讨论】:
git filter-branch --subdirectory-filter <subdirectory> 直接从 git 更改工作树的根。注意:它发生在结帐之后,并且只有在进行只读结帐时才有可能,因为 repo 不再与上游兼容。