2011-01-30 69 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