假设我执行了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}})
答案 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
箍的解决方案?)