Git合并不会接受新文件

3

我有分支A和分支B。我正在尝试从B合并到A

我在分支A上。

我运行以下命令:

git merge B

Git合并了一些东西。我可以看到一些冲突和合并的文件,但B中有一个新文件(A中没有这个文件的版本),但是该文件未被合并。

合并后我在A中没有它。你有什么想法我做错了什么吗?


@Biffen 嗯,是的,我想是这样。我可以在Git Bash中看到一些消息,比如自动合并失败(冲突),就是这些。 - ikos23
一个可能的解释是,B中的新文件从未推送到代码库。 - Tim Biegeleisen
但是它确实存在。我已经检查了远程仓库(我们的Stash),那个文件在那里(我的意思是origin/B存在,文件也在那里)。 - ikos23
@Biffen 他正在进行合并操作,而不是变基操作。尽管可能存在冲突,但在执行合并操作后,所有内容应立即出现。 - Tim Biegeleisen
@TimBiegeleisen 哦,我不知道我的头在哪里。是我的错。 - Biffen
1
运行快速的 git diff --name-status A...B(注意三个点)和相同的 B...A。第一个将显示“自合并基以来在B中更改的文件”(您的新文件应显示为添加的A),第二个将显示“自合并基以来在A中更改的文件”(您的新文件不应出现)。如果涉及的文件未正确显示,请直接检查合并基准提交(使用git merge-base A B查找其ID)。 - torek
2个回答

2

可能有以下几个原因:

  1. 在合并 A 和 B 之前,您是否提交了所有更改?(包括您缺少的文件)
  2. 另一个分支中可能有一个新的提交,故意删除了此文件吗?

1
当您尝试进行git merge时,如果合并失败,则必须解决冲突,然后commit您所做的解决方案。
如果您不提交更改,则这些更改将不会反映在您的存储库中,因此不会进行任何更改。
只有在提交更改后,您才能看到所有更改,但是git status会将它们显示为待处理更改。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接