如何在提交之前查看git合并所做的更改?

3

假设你已经完成了一次合并:

git checkout mybranch
git merge master

然后手动编辑一些文件以解决合并冲突。

git status 将显示所有已修改的文件,但是 git diff 只会显示你为了解决合并冲突而编辑的文件的更改情况。在提交整个修改之前,如何查看合并引入相对于 mybranch 的更改呢?(提交后我认为可以使用 git diff HEAD^ HEAD 命令)

由于我的背景是 Mercurial,所以可能会漏掉一些概念......


你能否在那个时间点上发布一个 git status 的示例输出?我认为我有一个答案,但我不确定如何重新创建您描述的情况。顺便说一下,stashes可能存在同样的问题。 - wjandrea
2
git add <conflicted_files> && git diff --cached :将冲突的文件添加至缓存区,并显示已缓存的更改。 - ElpieKay
2
啊,太好了 - 看起来 git diff --cached 显示了合并所做的非冲突更改,所以即使没有添加,这对我也有效。如果你想要积分,我会接受它作为答案! - lost
“缺失的概念”是Git的“暂存区”。这是一个非常有用的概念。在Git中,“提交”不仅仅是“已提交”或“未提交”,而是分为两个步骤:暂存和实际提交。原因如下:Git中的“stage”是什么意思? - paulsm4
1个回答

3

查看已暂存文件的差异常见的方式是

git diff --cached

它在这里也应该能够工作


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