我刚刚观察到一些奇怪的事情git pull
,我不明白。
星期五,我在当地的一家分公司工作。我们就这样称呼它吧mybranch
。在离开办公室之前,我将其推送到了 origin(这是我的 github 存储库):git push origin mybranch
.
昨天在家,我pull
将 mybranch 编辑到我的笔记本电脑上,做了更多编码,然后将我的更改推送回 github (原始)。
现在我又开始工作了,并尝试将昨天的更改拉到我的工作机器上(周末我没有更改工作地点的本地存储库中的任何内容):
git pull origin mybranch
这导致了快进合并,这很好。然后我做了一个git status
,它说:
# On branch mybranch
# Your branch is ahead of 'origin/mybranch' by 6 commits.
#
nothing to commit (working directory clean)
啊?当我整个周末都没有碰它并且只是从原点拉取时,怎么会提前 6 个提交呢?所以我跑了一个git diff origin/mybranch
这些差异正是我刚刚从远程拉取的 6 个更改。
我只能通过运行来“修复”这个问题git fetch origin
:
From [email protected]:me/project
af8be00..88b0738 mybranch -> origin/mybranch
显然,我的本地存储库缺少一些参考对象,但怎么可能呢?我的意思是,拉动已经完成了提取,除了那个分支之外我没有处理任何事情,所以git fetch origin
and git fetch origin mybranch
应该有相同的结果吗?
我应该总是使用git pull origin
代替git pull origin branchname
?
我很困惑。