我想用这种行为定义一个快捷方式“git diffn”:
git diffn := git diff HEAD HEAD~1
git diffn 1 := git diff HEAD~1 HEAD~2
git diffn 2 := git diff HEAD~2 HEAD~3
...
首先没问题,但我不知道要做其余的事。
答案 0 :(得分:3)
怎么样:
git show
- 显示上次提交
git show HEAD~1
- 显示最后一次提交
git show <COMMIT SHA>
- 向您显示任何提交
git whatchanged
- 显示哪些文件针对git log更改了
答案 1 :(得分:3)
自己想出来。我添加了〜/ .gitconfig这个怪物:
[alias]
dn = "!sh -c 'if [ $# -eq 0 ] ; then git diff HEAD~1 HEAD ; else git diff HEAD~`expr $1 + 1` HEAD~$1 ; fi' -"
在此之后,
git dn
工作,以及
git dn 1
git dn 2
...
答案 2 :(得分:0)
令人惊讶的是(对我而言),您可以合并~n
和^
语法,这就是我的做法:
a=1; git diff HEAD^~$a HEAD~$a
但是有一种更简单的方法:
a=1; git log -p -1 HEAD~$a;
我发现额外的提交信息有助于定位,但您可以自定义。注意:该联机帮助页指出了这种与diff的格式之间的一些细微差别,这可能对非人类消费很重要。
[alias]
diffn = "!sh -c 'git log -p -1 HEAD~$1' -"
对于省略的arg不起作用,所以我想这需要if
。
BTW:发现了类似的讨论here