命令结果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
Run Code Online (Sandbox Code Playgroud)
命令结果git merge master
:
javanoob@DELL:~/workspace/PROJECT_One$ git merge master
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)
当我执行命令git merge origin/master
它显示有一些文件将被覆盖但如果我执行相同的命令没有前缀origin/
它说一切都已经是最新的.
这个设置有什么问题?
我不知道是否重要但在运行这些命令之前,我确实运行了命令 git fetch origin
fis*_*isk 28
git fetch
获取远程分支上的信息,但不对本地master
分支进行任何更改.正因为如此,master
并且origin/master
仍然分歧.您必须使用合并它们git pull
.
进行提交时,您的本地master
分支将超前,origin/master
直到您推送这些更改.这种情况恰恰相反,origin/master
分支在本地master
分支之前.这就是为什么你得到不同的结果.
有关更多信息,请阅读/sf/answers/497332321/.
master
是你的本地分支,origin/master
是远程分支(它最后的状态fetch
)
您的输出显示远程有一个提交,它将覆盖sample.txt
并且尚未pull
进入您的本地master
根据经验 - 在进行任何合并/重新定位等之前,最好拥有一个干净的工作树和最新的分支。
所以 - 提交你的工作,检查 git 状态,然后做git pull --rebase
('oh-my-zsh' 有别名gup
),然后才继续合并。
usinggit merge origin/master
指的是服务器上的 master 分支。git merge master
指的是您当地的主分支。
git pull
如果它们发散,您可以通过使用合并它们。