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.
我想知道为什么不能进行合并操作?
答案 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
分支进行任何更改。因此,master
和origin/master
仍然分开。您必须使用git pull
合并它们
提交时,本地主分支在origin/master
之前,直到您推送这些更改。相反,origin/master
分支位于本地master分支之前。这就是为什么您获得不同结果的原因
答案 1 :(得分:2)
git merge
需要分支名称。但是master
是指另一个存储库(称为远程存储库),而不是分支。您可以通过简单的更改执行此操作:
git fetch && git merge origin/master
此处origin/master
是指远程跟踪分支。这是从origin
远程获取的分支的本地副本。或者,您可以只做
git pull origin master
或者由于您已经在master
分支上,因此可以
git pull