我已经在git中设置了一些远程跟踪分支,但是一旦用'git fetch'更新了它们,我似乎永远无法将它们合并到本地分支中。
例如,假设我有一个名为“ an-other-branch”的远程分支。我在本地将其设置为跟踪分支
git branch --track an-other-branch origin/an-other-branch
到目前为止,一切都很好。但是,如果该分支得到更新(通常是由我移动机器并从那台机器提交),并且我想在原始机器上更新它,则获取/合并会遇到麻烦:
git fetch origin an-other-branch
git merge origin/an-other-branch
每当执行此操作时,都会收到“已经更新”消息,并且没有任何合并。
但是,
git pull origin an-other-branch
总是按照您的期望进行更新。
另外,运行git diff
git diff origin/an-other-branch
表明存在差异,因此我认为我的语法错误。
我究竟做错了什么?
编辑[2010-04-09]:我已经检查了几次,而且绝对不在其他分支上。我的“ git fetch”后面跟着“ git merge”(如上所示)是否应该做与git pull完全相同的事情?我将获得一些显示git status等结果的工作流。
git fetch origin an-other-branch
将获取的提示存储在中FETCH_HEAD
,但不存储origin/an-other-branch
(即通常的“远程跟踪分支”)。因此,可以做到git fetch origin an-other-branch && git merge FETCH_HEAD
,但是像@Gareth所说的那样做更好(或者只是使用git pull)。