Git是否有(或需要)类似于svn的Peg修订版本?

7

假设我在svn中按照以下步骤进行操作:

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

如果我想使用svn查看第一个"foo"的内容,我需要使用定点修订语法"svn cat foo@1",因为传统的语法"svn cat -r 1 foo"会失败。
我读到git跟踪内容而不是文件,那么这是否意味着不需要类似于定点修订的东西?
1个回答

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

将会展示文件的内容,就像在“rev1”版本中一样(注意:需要指定从Git仓库根目录开始的完整路径)

如"恢复Git仓库中已删除的文件"所述,您可以通过checkout快速恢复文件的以前版本。

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

(其中 $file 是当前Git存储库根目录中文件的完整路径。)

6
基本上,Git 做的总是相当于 svn cat foo@1 的操作。Linus 可能认为 svn cat -r 1 foo 的行为是 Subversion 的又一个失败(我也这么认为)。 - Arrowmaster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接