git push origin HEAD是什么意思?

scr*_*lli 85 git git-push

我在官方指南中找到了:

git push origin HEAD

一种将当前分支推送到远程同名的便捷方法.

但是,命令的含义对我来说并不清楚.为什么会产生这种影响?

我一直无法找到答案(这个问题似乎对待问题,但标题是误导性的).

hek*_*mgl 109

HEAD指向当前分支的顶部.git可以从中获取分支名称.所以它是一样的:

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

但您不必记住/输入当前分支名称.它还可以防止您意外地推入错误的远程分支.

如果要推送与当前分支不同的分支,则该命令将不起作用.

  • 可能有必要提一下`HEAD`是一个符号引用,它可以用`git symbolic-ref HEAD`看到. (14认同)
  • 实际上“git push origin”是一个有效的命令。如果 `push.default` Git 配置设置设置为 `nothing`,那么 `git push origin` 将根据 `man git-config` “不推送任何内容(错误)”。但其他 `push.default` 设置有其他行为。在“man git-config”中搜索“push.default”。还要在`man git-push`顶部的描述部分中搜索“当命令行没有指定**哪里**要推送”和“当命令行没有指定**要推送什么**” (这是“man git-push”,而不是“man git-config”)。 (5认同)
  • `git push origin` 和 `git push origin HEAD` 之间有什么区别? (2认同)

小智 10

如果要推送到特定的远程分支,可以运行:

git push origin HEAD:<name-of-remote-branch>
Run Code Online (Sandbox Code Playgroud)

这就是我在尝试将 repo 推回远程分支时遇到的情况。