git merge origin master不起作用

时间:2018-08-01 03:56:56

标签: git

git status

它将得到:

On branch master
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)
nothing to commit, working tree clean

然后如果我跑步

git fetch -a && git merge origin master

它将得到:

Already up-to-date.

我想知道为什么不能进行合并操作?

2 个答案:

答案 0 :(得分:4)

git fetch && git merge origin/master 

不同
git fetch && git merge origin master # Invalid

因为git fetch更新了.git/refs/remote/<remote server name>/<remote branch name>。而且,除非指定,否则您总是引用工作目录HEAD

中的.git/refs/heads/<branch name>

注意: git merge是本地操作。 git merge origin master是无效的操作。如此处的讨论SO question

获取Git
git fetch获取有关远程分支的信息,但不对本地master分支进行任何更改。因此,masterorigin/master仍然分开。您必须使用git pull
合并它们 提交时,本地主分支在origin/master之前,直到您推送这些更改。相反,origin/master分支位于本地master分支之前。这就是为什么您获得不同结果的原因

Source

答案 1 :(得分:2)

git merge需要分支名称。但是master是指另一个存储库(称为远程存储库),而不是分支。您可以通过简单的更改执行此操作:

git fetch && git merge origin/master

此处origin/master是指远程跟踪分支。这是从origin远程获取的分支的本地副本。或者,您可以只做

git pull origin master

或者由于您已经在master分支上,因此可以

git pull