Jus*_*tin 5 git merge pull atlassian-sourcetree
在什么情况下git pull origin master
命令可能导致与git checkout master
- > git pull
- > git checkout feat-a
- > 不同的工作副本状态git merge master
?
长话故事.
我有一个功能分支,我们可以调用它feat-a
.我是这个分支机构的唯一开发人员.分支是从master
分支创建的.两个分支都有远程起源,origin/feat-a
并且origin/master
.没什么特别的,你典型的git存储库安排.
今天我想从远程更新我的功能分支master
.从早期与其他开发人员的沟通,我知道当我将远程合并master
到我的功能分支时会有相互矛盾的变化.
我正在使用SourceTree.因此,在feat-a
检出分支的情况下,我在origin/master分支上打开了上下文菜单并选中了Pull origin/master into current branch
.我很震惊地看到Git报告我的分支已经是最新的.我知道这不对,远程master
分支必须有变化.我重复了几次这个命令.始终获得相同的最新消息.
为了100%肯定,我做到了"漫长的道路".我检查了master
分支,点击了Pull
按钮.该分支更新了最新的提交.然后我检查了feat-a
分支,然后在主分支上拉了上下文菜单并选中了Merge master into current branch
.瞧!这是我期望得到的合并冲突!
这让我感到困惑.我曾经假设pull
从origin/master
我的当前分支执行是与检出master
,拉出,检出另一个分支然后合并master
到当前分支相同(除了从远程拉到master
另一个分支不会更新我的本地master
,但那不应该不会影响这个问题).
从本质上讲,由于某种原因,pull
命令从origin/master
进入feat-a
正试图说服我,有上没有变化origin/master
,只有用开关支路和手动合并和预期一样很长的路要走.
我不确定SourceTree是否正在做一些可能会影响这个问题的特殊内容.
你说你使用Sourcetree,所以我猜你实际上并没有git pull origin master
在命令行上输入。我的猜测是,这要么是 GUI 消息中令人困惑的内容,要么是 Sourcetree 中的错误。
我宁愿询问 Sourcetree 开发人员。