首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git merge master和origin/master之间的区别?

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

Stack Overflow用户
提问于 2015-12-29 00:08:02
回答 3查看 69.9K关注 0票数 41

命令git merge origin/master的结果

代码语言:javascript
复制
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的结果

代码语言:javascript
复制
javanoob@DELL:~/workspace/PROJECT_One$ git merge master
Already up-to-date.

当我执行命令git merge origin/master时,它显示有一些文件将被覆盖,但如果我执行相同的命令,但没有前缀origin/,它会显示所有内容都已经是最新的。

这个设置出了什么问题?

我不知道这是否重要,但在运行这些命令之前,我确实运行了命令git fetch origin

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-29 00:22:00

git fetch会获取有关远程分支的信息,但不会对本地master分支进行任何更改。正因为如此,masterorigin/master仍然存在分歧。您必须使用git pull来合并它们。

当您提交时,在您推送这些更改之前,您的本地master分支将领先于origin/master。本例正好相反,origin/master分支位于本地master分支的前面。这就是为什么你会得到不同的结果。

有关更多信息,请阅读https://stackoverflow.com/a/7104747/2961170

票数 44
EN

Stack Overflow用户

发布于 2015-12-29 00:16:53

使用git merge origin/master引用服务器上的主分支。git merge master指的是您本地的主分支。

通过使用git pull,您可以在它们出现分歧时将它们合并。

票数 8
EN

Stack Overflow用户

发布于 2015-12-29 00:23:04

master是您的本地分支,origin/master是远程分支(上一次fetch的状态)

您得到的输出显示远程中有一个commit,它将覆盖sample.txt,但尚未pull到本地master

作为一个经验法则-在进行任何合并/重新建立基础等操作之前,最好是有一个干净的工作树和最新的分支。

所以-提交你的工作,检查git状态,然后执行git pull --rebase (‘哦-my-zsh’对此有别名gup ),然后才能进行合并。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34496806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档