无法在Git合并提交中查看文件变更详情,求解决方法
查看Git合并提交中指定文件的变更详情
当你使用git log -p --full-history filepath看不到合并提交里的文件变更时,是因为Git默认对合并提交只展示其与第一个父提交的差异。如果该文件在合并后的内容和第一个父提交一致,或者合并时的冲突被解决为与第一个父提交相同的状态,默认的diff就不会显示该文件的变更。
你可以通过以下几种方式查看合并提交中该文件的完整变更情况:
查看合并提交的冲突解决及双向差异
使用git show命令加上--cc参数,它会展示合并提交中解决冲突后的文件变更,同时呈现来自两个父提交的差异细节:git show c59b1cd3a918d2807ed45faf32a7e88e4b3ffc70 --cc filepath分别对比合并提交与两个父提交的差异
显式对比合并提交和它的第一个父提交:git diff c59b1cd3a918d2807ed45faf32a7e88e4b3ffc70^1 c59b1cd3a918d2807ed45faf32a7e88e4b3ffc70 filepath再对比合并提交和它的第二个父提交(即你的提交b21cca99):
git diff c59b1cd3a918d2807ed45faf32a7e88e4b3ffc70^2 c59b1cd3a918d2807ed45faf32a7e88e4b3ffc70 filepath这样就能完整看到该文件在合并过程中相对于两个父提交的所有变更。
在git log中强制展示合并提交的完整diff
如果想直接在git log输出中看到合并提交的双向差异,可以添加-m参数,它会把合并提交拆分为虚拟提交,分别展示与每个父提交的对比:git log -p -m --full-history filepath
内容的提问来源于stack exchange,提问作者fbfatboy
相关产品推荐
相关产品推荐

