2011-01-30 72 views
7

說我按照SVN下列步驟操作:git是否(或需要)svn的peg修訂版的等價物?

rev 1: create a file called 'foo' 
rev 2: delete 'foo' 
rev 3: create a new file called 'foo' 

如果我想看到的第一個「foo」使用SVN的內容,我會需要使用peg修訂版本語法「svn cat [email protected]」,因爲傳統的語法「 svn cat -r 1 foo'會失敗。
我讀過git跟蹤內容而不是文件,那麼這是否意味着不需要像peg修訂版那樣的東西?

回答

8
git show HEAD~1:/path/tp/foo 

會告訴你該文件的內容,因爲它是在「REV1」(注:你需要指定文件的完整路徑,從Git的回購的根目錄)

由於在「Restore a deleted file in a Git repo」中提到,您可以使用結帳快速恢復文件的先前版本。

git checkout $(git rev-list -n 1 HEAD -- "$file")^ -- "$file" 

(與$file是從當前GIT中回購的根目錄中的文件的完整路徑。)

+6

基本上總是確實的git的`SVN貓FOO @ 1`的等價物。 Linus可能會認爲`svn cat -r 1 foo`的行爲是svn的另一個失敗。 (我也做) – Arrowmaster 2011-01-30 02:12:43