如何区分父项的提交?
除了编写别名或脚本之外,是否有更短的命令获取特定提交的差异?
git diff 15dc8^..15dc8
如果你只给出一个commit commit id git diff 15dc8
,它git diff 15dc8
针对HEAD的提交。
使用git show $COMMIT
。 它会显示提交的日志消息以及该特定提交的差异。
使用:
git diff 15dc8^!
如以下git-rev-parse(1)联机帮助页(或现代git gitrevisions(7)联机帮助页)中所述:
存在另外两个用于命名由提交及其父提交形成的集合的简写。 r1 ^ @符号表示r1的所有父母。 R1 ^! 包括提交r1但排除其所有父母。
这意味着你可以使用15dc8^!
作为15dc8^..15dc8
在任何需要修改的git中的简写。 对于diff命令, git diff 15dc8^..15dc8
被理解为git diff 15dc8^ 15dc8
,这意味着commit( 15dc8^
)和commit( 15dc8
)的父级之间的区别。
注意 : git-rev-parse(1)
页中的描述提到了修订范围 ,它还需要为多个父级的合并提交工作。 然后r1^!
是“ r1 --not r1^@
”,即“ r1 ^r1^1 ^r1^2 ...
”
此外,您可以使用git show COMMIT
来获取提交的提交描述和差异。 如果你只需要diff,你可以使用git diff-tree -p COMMIT
如果你知道有多远,你可以尝试如下所示:
# Current branch vs. parent
git diff HEAD^ HEAD
# Current branch, diff between commits 2 and 3 times back
git diff HEAD~3 HEAD~2
之前的提交工作是这样的:
# Parent of HEAD
git show HEAD^1
# Grandparent
git show HEAD^2
有很多方法可以指定提交:
# Great grandparent
git show HEAD~3
详情请参阅此页面。
链接地址: http://www.djcxy.com/p/50889.html