git merge master和origin/master之间的区别?

jav*_*oob 25 git

命令结果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/.


Vas*_*fed 7

master是你的本地分支,origin/master是远程分支(它最后的状态fetch

您的输出显示远程有一个提交,它将覆盖sample.txt并且尚未pull进入您的本地master

根据经验 - 在进行任何合并/重新定位等之前,最好拥有一个干净的工作树和最新的分支。

所以 - 提交你的工作,检查 git 状态,然后做git pull --rebase('oh-my-zsh' 有别名gup),然后才继续合并。


vau*_*ett 6

usinggit merge origin/master指的是服务器上的 master 分支。git merge master指的是您当地的主分支。

git pull如果它们发散,您可以通过使用合并它们。