使用 git bisect 我找到了罪魁祸首提交 - 这是一个合并提交(我在主分支上)
我正在尝试隔离错误代码,但合并包含来自合并分支的一些提交,我不知道如何查看合并提交与其之前的提交之间的完整更改(主中的先前工作提交)
有没有办法在 GIT 中这样做?
使用 git bisect 我找到了罪魁祸首提交 - 这是一个合并提交(我在主分支上)
我正在尝试隔离错误代码,但合并包含来自合并分支的一些提交,我不知道如何查看合并提交与其之前的提交之间的完整更改(主中的先前工作提交)
有没有办法在 GIT 中这样做?
你可以和父母做一个 git diff 。
第一个父母用 SHA1^ 给出,第二个父母用 SHA1^2 给出:
git diff mergeSHA1^ mergeSHA1
git diff mergeSHA1^2 mergeSHA1
您可以查看git diff的文档以获取更多详细信息
git diff
显示提交之间的差异。您想要的变化可能是这样的:
git diff [--options] <commit> <commit> [--] [<path>…]
这是为了查看任意两个<commit>之间的变化。
因此,对于您的情况,将合并提交的 sha1 用于另一个,并将您想要将其与另一个进行比较的提交的 sha1 使用。
git diff <sha1 of the commit to compare to> <sha1 of merge commit>
您还可以使用^
运算符与合并提交的父级进行比较。sha1^
将是第一个父母,sha1^2
将是第二个,如此处所述。