【问题标题】:Jenkins sparse checkout: only content of directory詹金斯稀疏结帐:只有目录的内容
【发布时间】:2016-09-07 22:48:12
【问题描述】:

我有一个仓库:hello.git。我能够执行稀疏结帐: sparse checkout path: /test/test1

现在我的工作区中有这个:

.../workspace/test/test1/content

我想要以下:

.../workspace/content

是否可以只签出您描述的路径的内容?

【问题讨论】:

    标签: git jenkins sparse-checkout


    【解决方案1】:

    这在 git 中是不可能的。

    当您在稀疏模式下结帐时,git 仅更新与您在 $GIT_DIR/info/sparse-checkout 中的配置匹配的条目(这是由 Jenkins 上的 Git 插件设置的)。

    Git 不支持在结账时更改工作树的根。因此,当您进行稀疏检出时,您将始终拥有所选文件的整个目录结构。

    https://git-scm.com/docs/git-checkout

    【讨论】:

    • 虽然我认为这在 Jenkins 中是不可能的,但要完成您的答案:从技术上讲,可以使用 git filter-branch --subdirectory-filter <subdirectory> 直接从 git 更改工作树的根。注意:它发生在结帐之后,并且只有在进行只读结帐时才有可能,因为 repo 不再与上游兼容。
    • 虽然我仍然不认为这是可能的,但值得一提的是 Git 从 2.19 版开始可以做到这一点:stackoverflow.com/a/52269934/344480
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-19
    • 1970-01-01
    • 2021-08-24
    • 2016-05-07
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多