gpt4 book ai didi

git - 为什么 "git clone"不采用 refspec?

转载 作者:太空狗 更新时间:2023-10-29 13:18:07 26 4
gpt4 key购买 nike

看来很多人已经用 git init && git fetch 组合替换了 git clone。这看起来相当愚蠢,不幸的是像 Jenkins 这样的工具不会为你做这件事。那么,为什么 git clone 不像 git fetch 那样采用 refspec?

具体来说,如果您希望在 Jenkins 上运行 gerrit 触发的构建任务,您需要确保工作空间存在,否则 jenkins 将无法 checkout 包含 gerrit 更改的修订版。这是因为 gerrit 使用的 ref 路径不在 git clone 获取的路径中。

最佳答案

git clone 可以通过通用--config option 获取refspec :

Set a configuration variable in the newly-created repository; this takes effect immediately after the repository is initialized, but before the remote history is fetched or any files checked out. [...] This makes it safe, for example, to add additional fetch refspecs to the origin remote.

例子:

 git clone -c remote.origin.fetch=+refs/changes/*:refs/remotes/origin/changes/* https://gerrit.googlesource.com/git-repo

但是,我刚刚意识到对于 git version 2.12.2.windows.2 这对我来说并不像预期的那样工作,因为 changes克隆时并没有真正获取 ref。它被正确地添加到 .git/config,但我需要在克隆之后通过

手动获取它
cd git-repo
git fetch

编辑:结果是known bug .

关于git - 为什么 "git clone"不采用 refspec?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20644613/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com