Git diff工具在几个提交中与其他提交中间

Pet*_*rta 5 git diff

我们有一个工作流程,其中承诺代码需要由其他开发人员审查.在简单的情况下,这可以通过"git diff oldhash newhash> diff.txt"完成,并将其上传到我们的审查委员会.

但有没有办法在多个提交中创建差异,并排除其他人之间完成的提交.例如,我想在mine1上创建diff到mine4,但不包括Joe的提交:

mine4
mine3
joe's
mine2
mine1
Run Code Online (Sandbox Code Playgroud)

任何想法如何在命令行git或其他工具中执行此操作?

其他人提交的提交会影响与我的提交不同的文件,因此在这种情况下,它只是排除其他人所做的更改.

ral*_*nja 5

你可以通过创建一个与cherry-pick相结合的新分支来实现这一目标:

git checkout -b mine_diffs
git cherry-pick mine1
git cherry-pick mine2
git cherry-pick mine3
git cherry-pick mine4
git diff mine1_ mine4_
Run Code Online (Sandbox Code Playgroud)

完成后,只需删除分支即可.请注意,在diffing时sha1哈希值会有所不同,这就是mine1_和mine4_指示的内容.