如何区分父项的提交?

除了编写别名或脚本之外,是否有更短的命令获取特定提交的差异?

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

上一篇: How to diff a commit with its parent?

下一篇: Track but don't stage files with git?