git显示以前的提交修改了没有git log的文件

时间:2017-09-28 09:34:16

标签: git vim-fugitive

在git中,我们可以轻松构建指向HEAD~ HEAD^等先前提交的修订,并在这些修订中显示文件,如

git show HEAD~:myfile

如果没有先咨询myfile来获取提交哈希值,那么显示以前版本的git log的语法是什么?

我还在fugitive中使用vim,有时需要使用:Gedit打开文件的先前版本。但我不知道该提供什么作为论据。

1 个答案:

答案 0 :(得分:0)

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'