如何让git diff只显示两次提交之间的差异,而不包括中间的其他提交?
当前回答
检查完整的更改:
git diff <commit_Id_1> <commit_Id_2>
仅检查更改/添加/删除的文件:
git diff <commit_Id_1> <commit_Id_2> --name-only
注意:对于检查中间没有提交的diff,你不需要输入提交id。
其他回答
git diff <a-commit> <another-commit> path
例子:
git diff commit1 commit2 config/routes.rb
它显示了两次提交之间在该文件上的差异。
检查完整的更改:
git diff <commit_Id_1> <commit_Id_2>
仅检查更改/添加/删除的文件:
git diff <commit_Id_1> <commit_Id_2> --name-only
注意:对于检查中间没有提交的diff,你不需要输入提交id。
假设你有这个
A
|
B A0
| |
C D
\ /
|
...
你要确保A等于A0。
这样就可以了:
$ git diff B A > B-A.diff
$ git diff D A0 > D-A0.diff
$ diff B-A.diff D-A0.diff
美元git日志
commit-1(new/latest/recent commit)
commit-2
commit-3
commit-4
*
*
commit-n(first commit)
$git diff commit-2
显示commit-2到commit-1之间的所有变化(仅仅是commit-1的补丁,相当于git diff HEAD~1 HEAD)
类似的 $git diff commit-4 commit-1
显示commit-4到commit-1之间的所有更改(commit-1的补丁, 一起提交2号和3号。相当于git差头~3头)
$git diff commit-1 commit-2
通过改变订单提交ID,可以获得恢复补丁。 ("$git diff commit-1 commit-2 > revert_patch_of_commit-1.diff")
假设您想查看提交012345和abcdef之间的差异。以下内容可以达到你的目的:
$ git checkout 012345 $ git cherry-pick -n abcdef $ git diff --cached
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别