命令git merge origin/master
的结果:
javanoob@DELL:~/workspace/PROJECT_One$ git merge origin/master
Updating d83ef9c..dd520ea
error: The following untracked working tree files would be overwritten by merge:
sample.txt
Please move or remove them before you can merge.
Aborting
命令git merge master
的结果:
javanoob@DELL:~/workspace/PROJECT_One$ git merge master
Already up-to-date.
当我执行命令时git merge origin/master
它显示有一些文件将被覆盖,但如果我执行相同的命令而没有前缀origin/
,则表示所有内容都已更新。
此设置有什么问题?
我不知道是否重要但在运行这些命令之前,我确实运行了命令git fetch origin
答案 0 :(得分:21)
git fetch
获取有关远程分支的信息,但不会对您的本地master
分支进行任何更改。因此,master
和origin/master
仍然存在分歧。您必须使用git pull
合并它们。
进行提交时,您的本地master
分支会超前origin/master
,直到您推送这些更改为止。这种情况恰恰相反,origin/master
分支位于本地master
分支之前。这就是为什么你会得到不同的结果。
答案 1 :(得分:3)
master
是您的本地分支,origin/master
是远程分支(它最后的状态fetch
)
您输出的结果显示,在远程进行提交,将覆盖sample.txt
但尚未pull
进入您的本地master
根据经验,在进行任何合并/变基等之前,最好有一个干净的工作树和最新的分支。
所以 - 提交你的工作,检查git状态,然后git pull --rebase
(' oh-my-zsh'别名为gup
),然后继续合并。
答案 2 :(得分:-1)
使用git merge origin/master
是指服务器上的主分支。 git merge master
指的是您当地的主分支机构。
使用git pull
,如果它们分歧,您可以将它们合并。