当 git push origin HEAD:refs/for/branch 时会发生什么

Kau*_*kar 1 git git-push gerrit

我已经使用这个命令一段时间来将我的代码推送到 Gerrit 中。

git push origin HEAD:refs/for/branch
Run Code Online (Sandbox Code Playgroud)

然而,最近我正在开发一个没有 Gerrit 管道的基础设施。我可以进行推送,但我无法在 git 上看到分支。当我跑步时:

git push origin branch
Run Code Online (Sandbox Code Playgroud)

git上可以看到。我正在本地创建的新分支上尝试此操作。

Mar*_*ira 6

git push 命令的工作原理如下:

git push REPOSITORY SOURCE_REFSPEC:DESTINATION_REFSPEC
Run Code Online (Sandbox Code Playgroud)

对于 Gerrit,当您使用:

git push origin HEAD:refs/for/branch
Run Code Online (Sandbox Code Playgroud)

您要求 Git:

  • 存储库=来源

推送到原始存储库(默认情况下,您从中克隆的存储库)

  • SOURCE_REFSPEC=头

推送工作树的当前提交

  • DESTINATION_REFSPEC=参考/for/分支

将提交推送到“分支”以在 Gerrit 上进行审核。“refs/for/”前缀是一个“神奇”分支,它“指示”Gerrit 必须创建代码审查。请在此处查看有关此内容的更多信息。

仅当您使用 Gerrit 时,“refs/for/”前缀才有意义。

最后,如果您不使用 Gerrit 并执行“git Push origin 分支”,那么您会将当前提交推送到“origin”存储库上的“branch”分支。