Git pull 原点 HEAD

标签 git version-control git-branch git-pull

有人告诉我,您可以通过以下方式向与当前 Git 分支名称相匹配的远程分支推送和 pull :

git push origin HEAD

git pull origin HEAD

它以前一直对我有用,但奇怪的是有时它不起作用,而是推迟从 ma​​ster 分支推/pull (这会导致 pull merge ......不是我想要做)。我知道您可以通过简单地使用分支名称轻松地从您所在的分支推送/pull :

git pull origin name-of-branch-i-want-to-pull-from

无论如何:

  1. 是否有某种原因导致 HEAD 丢失跟踪/不指向我当前的分支,就像它几乎总是这样?
  2. 有没有什么方法可以推/pull 到我当前正在处理的分支(只要远程分支的名称匹配),而无需在命令中明确命名分支?

最佳答案

问题是,当你这样做时:

git push origin HEAD

HEAD 在这里表示您的本地 存储库中的默认分支。

但是,当您这样做时:

git pull origin HEAD

HEAD 在这里表示您的远程 存储库上的默认分支。

这 2 个 HEAD 可以有相同的分支名称,但通常它们是不同的。

例如,如果你的本地仓库和远程仓库的默认分支都是master,那么你在本地仓库切换到一个新的分支feature,然后推送它通过执行 git push origin HEAD 到远程,远程的默认分支不会神奇地更改为 feature。相反,它将停留在 master。此时,如果您在功能分支上执行 git pull origin HEAD,您实际上是在执行 git pull origin master

所以我建议避免执行 git pull origin HEAD,因为远程的默认分支是什么并不明显,并且可能会导致意外问题。

关于Git pull 原点 HEAD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12532913/

相关文章:

php - 如何通过 WebDAV 部署 git 版本的 Web 应用程序?

git - GitHub.com 如何设置默认分支?

GIT-删除旧的reflog条目

git - 如何列出自特定日期以来未更改的所有文件?

git - 对不受信任的用户 stash 部分 git repo

python - 如何使用 Django 比较要使用 Markdown 渲染的两个模型?

Git 分支名称与操作系统相关吗?

git - 是否可以将公共(public) GitHub 存储库 fork 到企业存储库中?

git - 使用外部依赖项在 Git 中切换分支

Git 改变 rebase