在 git 中,我们可以轻松构建指向先前提交的修订,HEAD~
HEAD^
并在这些修订上显示文件,例如
git show HEAD~:myfile
myfile
在没有事先咨询git log
以获取提交哈希的情况下显示先前版本的语法是什么?
我也使用fugitive
invim
并且有时需要使用:Gedit
. 但我不知道该提供什么作为论据。
在 git 中,我们可以轻松构建指向先前提交的修订,HEAD~
HEAD^
并在这些修订上显示文件,例如
git show HEAD~:myfile
myfile
在没有事先咨询git log
以获取提交哈希的情况下显示先前版本的语法是什么?
我也使用fugitive
invim
并且有时需要使用:Gedit
. 但我不知道该提供什么作为论据。
git show $(git log -m --first-parent --format=%H HEAD~ -2 -- path/to/file | tail -1):path/to/file
注意:此解决方案要求您指定两次路径,并且每次键入都可能非常冗长。别名可能会更好。
git config alias.prev '! f(){ git show $(git log -m --first-parent --format=%H HEAD~ -2 -- "$1" | tail -1):"$1"; }; f'
要获取上一个哈希:
git config alias.prevhash '! f(){ git rev-parse $(git log -m --first-parent --format=%H HEAD~ -2 -- "$1" | tail -1):"$1"; }; f'