我正在尝试将从master(本地)到我的功能分支的更改合并,但是我不能。这是我尝试过的
我签出了我的远程github分支,现在有一个本地分支来跟踪更改:
$ git branch -a
* master
remotes/origin/ABC-1849-add-new-changes
remotes/origin/master
...
other remotes
...
$ git checkout ABC-1849-add-new-changes
Branch ABC-1849-add-new-changes set up to track remote branch ABC-1849-add-new-changes from origin.
Switched to a new branch 'ABC-1849-add-new-changes'
在这一点上,如果我做
$ git diff master
我至少看到7个有冲突的文件。我需要将这些更改从master合并到我的分支。所以我这样做:
$ git merge master
我所看到的是:
Auto-merging random_modules.mk
Merge made by the 'recursive' strategy.
random_modules.mk | 1 +
1 file changed, 1 insertion(+)
没有出现冲突的文件。我没有看到任何消息说存在合并冲突。如果我与master进行比较,所有冲突仍然会出现
答案 0 :(得分:0)
一个简单的pushd/popd
本身不能告诉您是否会有合并冲突。它需要两个单独的 git diff master
命令,这些命令必须仔细扫描,以找出是否存在冲突。
(为什么您基于一个git diff
认为有7个文件有冲突?如果我们找出来,我们可能可以在这里解释您出了什么问题。)
答案 1 :(得分:0)
如果差异来自分支上的提交,则git保留这些更改并仅更新来自master的更改是正常的。
您可能要看的差异是:
# if you haven't merged master into my/branch yet :
git diff my/branch...master # three dots
# if you have already merged master into my/branch :
git diff my/branch^...master
这将向您显示“ my/branch
和master
之间的合并基础”与master
之间的区别。
git
将此差异视为:已提交给master
且尚未提交给my/branch
的更改。