2011-01-30 5 views
7

は、私はSVNで次の手順に従い言う:gitはsvnのペグリビジョンに相当するものを持っていますか?

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

私はSVNを使用して最初の「foo」の内容を確認したい場合は、私は伝統的な構文ので、ペグリビジョン構文「svn cat [email protected]」を使用する必要があります " svn cat -r 1 foo 'は失敗します。
私はgitがファイルではなくコンテンツを追跡しているので、ペグリビジョンのようなものは必要ありません。

答えて

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

それは「REV1」にあったようにあなたのファイルの内容を表示します(注意:あなたがGitのレポのルートディレクトリから、ファイルのフルパスを指定する必要があります)

として、 "Restore a deleted file in a Git repo"に記載されている場合、チェックアウトを使用して以前のバージョンのファイルをすばやく復元できます。 ($fileは、現在のGitのレポのルートディレクトリからのファイルのフルパスであることで。)

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

+6

は基本的にgitのは常に '1' @ 'のsvn猫fooの同等を行います。 Linusはおそらく 'svn cat -r 1 foo'の動作をsvnの失敗のもう一つのものと考えています。 (私も) – Arrowmaster

関連する問題