试图合并,说是最新的,但事实并非如此

时间:2012-01-22 21:15:37

标签: git

我在我的主分支上,试图合并:

>git merge feature_branch1
>Already up to date

但是我的功能分支包含我的主分支没有的文件。

为什么不将文件合并到主分支中,为什么它告诉我它已经是最新的?

1 个答案:

答案 0 :(得分:2)

它告诉你它是最新的,因为feature-branch1上没有提交尚未合并到你当前的分支。请注意,这是提交方式,而不是文件的任何内容。 (也就是说,它 是最新的。)如果您在合并提交或后续提交中删除了有问题的文件,那么Git相信您打算这样做,那里你是。

所以,开始检查事情:

  • 使用git statusgit diff查看您的工作树中是否刚删除了这些文件。
  • 通过gitk或git branch --contains feature-branch以可视方式验证分支是否已合并。 (这只是证实了你已经知道的事情。)
  • 使用git show feature-branch:path/to/fliegit show master:path/to/file验证其中一个文件是否真的在功能分支中,而且确实不在主文件中。也许你从来没有真正投入过它们。
  • 使用git log -- path/to/file查看提交该路径的提交内容。也许您已经删除了这些文件。
  • 看看你是否在合并提交中做了一些愚蠢的事情 - git show <merge-commit>应该打印没有差异(差异表示在合并提交本身中做出的更改)。你也可以在gitk中检查差异。可能由于某种原因,您在合并冲突解决期间删除了这些文件,并提交了错误的合并。

沿途的某个地方,你应该找到偏离轨道的地方。