Git不会从另一个分支中提取变化吗?

时间:2013-11-26 17:25:03

标签: git

编辑:我应该注意到这些是应该已经从“集成”分支合并的更改。他们以某种方式没有进入合并,现在Git不会添加它们,因为它坚持分支是“已经是最新的”。 Arrgh。

当我尝试将另一个分支合并到它时,Git不会更新我的分支。

这个文件在另一个分支中有所不同,但是当我尝试合并那个分支时,Git告诉我“已经是最新的”:

$ git diff --stat integration MyApp/src/main/webapp/WEB-INF/jsp/flow/appInfo.jsp
 .../webapp/WEB-INF/jsp/flow/appInfo.jsp    | 54 ++++------------------
 1 file changed, 10 insertions(+), 44 deletions(-)

$ git merge integration
Already up-to-date.

我不确定这是怎么可能的 - 有人能解释一下这种情况会怎样吗?

1 个答案:

答案 0 :(得分:1)

当你要求git合并时,它会根据分支之间的历史形状决定做什么。由于git报告它已经是最新的,integration必须是HEAD的祖先。您可以通过查看以下内容的输出来研究它是如何产生的:

git log --oneline --graph --decorate integration HEAD

如果您想使用integration分支中的替换该文件的本地版本,则可以执行单个文件结帐:

git checkout integration -- MyApp/src/main/webapp/WEB-INF/jsp/flow/appInfo.jsp

或者,您可以执行补丁检查以单独查看每个差异块并决定是否应用它:

git checkout -p integration -- MyApp/src/main/webapp/WEB-INF/jsp/flow/appInfo.jsp