Git中,我們可以很容易地構建指向先前提交類似HEAD~
HEAD^
修訂並顯示文件上的這些修訂像git的幻燈片前提交該修改的文件,而無需git的日誌
git show HEAD~:myfile
什麼是顯示上的語法版本myfile
沒有先諮詢git log
獲取提交散列?
我還在vim
中使用fugitive
,有時需要使用:Gedit
打開文件以前的版本。但我不知道要提供什麼作爲論據。
Git中,我們可以很容易地構建指向先前提交類似HEAD~
HEAD^
修訂並顯示文件上的這些修訂像git的幻燈片前提交該修改的文件,而無需git的日誌
git show HEAD~:myfile
什麼是顯示上的語法版本myfile
沒有先諮詢git log
獲取提交散列?
我還在vim
中使用fugitive
,有時需要使用: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'
謝謝。但是這仍然使用git日誌。這是獲得該散列的唯一方法嗎? –
@LiuSha看我的編輯。 –
這似乎是不可能的。 「以前的版本」是不明確的。對於一個合併提交,哪個祖先是以前的版本? – ElpieKay
@ElpieKay我假設問題是看着第一個父母。 –
@ JosephK.Strauss是的。第一個父母是夠好的。 –