git merge master不将更改/冲突从master合并到本地分支

时间:2020-11-02 20:59:21

标签: git github

我正在尝试将从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进行比较,所有冲突仍然会出现

2 个答案:

答案 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/branchmaster之间的合并基础”与master之间的区别。
git将此差异视为:已提交给master且尚未提交给my/branch的更改。