我在我的主分支上,试图合并:
>git merge feature_branch1
>Already up to date
但是我的功能分支包含我的主分支没有的文件。
为什么不将文件合并到主分支中,为什么它告诉我它已经是最新的?
答案 0 :(得分:2)
它告诉你它是最新的,因为feature-branch1上没有提交尚未合并到你当前的分支。请注意,这是提交方式,而不是文件的任何内容。 (也就是说,它 是最新的。)如果您在合并提交或后续提交中删除了有问题的文件,那么Git相信您打算这样做,那里你是。
所以,开始检查事情:
git status
或git diff
查看您的工作树中是否刚删除了这些文件。git branch --contains feature-branch
以可视方式验证分支是否已合并。 (这只是证实了你已经知道的事情。)git show feature-branch:path/to/flie
和git show master:path/to/file
验证其中一个文件是否真的在功能分支中,而且确实不在主文件中。也许你从来没有真正投入过它们。git log -- path/to/file
查看提交该路径的提交内容。也许您已经删除了这些文件。git show <merge-commit>
应该打印没有差异(差异表示在合并提交本身中做出的更改)。你也可以在gitk
中检查差异。可能由于某种原因,您在合并冲突解决期间删除了这些文件,并提交了错误的合并。沿途的某个地方,你应该找到偏离轨道的地方。