如何区分提交?

时间:2014-04-25 20:08:29

标签: git git-diff

假设我执行了git log并看到一个ID为280c5af57b02c41edbf947a0eed31c72e2839123的提交

似乎要查看在该提交中进行了哪些更改,我可以执行

git diff 280c5af57^ 280c5af57

git show 280c5af57

但是,由于我已经将opendiff设置为diff工具(使用https://gist.github.com/bkeating/329690上的指令),上面的第一个命令将使用opendiff显示它,而第二个命令将使用git在命令行上使用diff。

除了使用Bash别名或函数之外,还有一种方法可以告诉svn diff -c 321234区分它而不在提交ID中输入或粘贴两次吗? (如{{1}})

2 个答案:

答案 0 :(得分:4)

git diff默认与工作树和/或索引进行比较。为了直接从仓库中比较树而构建的命令是git diff-tree。尝试:

git diff-tree --ext-diff -p 280c5af

答案 1 :(得分:1)

您可以在gitconfig上添加类似内容:

[alias]
    changes = !sh -c 'git diff "$0^" "$0"'

现在你可以运行

git changes 280c5af57b02c41edbf947a0eed31c72e2839123

你只需要指定一次SHA(或其他)。

(这个答案确实有点沉重。有没有人有一个不会跳过!sh -c箍的解决方案?)