2017-09-28 51 views
1

Git中,我們可以很容易地構建指向先前提交類似HEAD~HEAD^修訂並顯示文件上的這些修訂像git的幻燈片前提交該修改的文件,而無需git的日誌

git show HEAD~:myfile 

什麼是顯示上的語法版本myfile沒有先諮詢git log獲取提交散列?

我還在vim中使用fugitive,有時需要使用:Gedit打開文件以前的版本。但我不知道要提供什麼作爲論據。

+3

這似乎是不可能的。 「以前的版本」是不明確的。對於一個合併提交,哪個祖先是以前的版本? – ElpieKay

+0

@ElpieKay我假設問題是看着第一個父母。 –

+0

@ JosephK.Strauss是的。第一個父母是夠好的。 –

回答

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' 
+0

謝謝。但是這仍然使用git日誌。這是獲得該散列的唯一方法嗎? –

+0

@LiuSha看我的編輯。 –