假设我在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跟踪内容而不是文件,那么这是否意味着不需要类似于定点修订的东西?
git show HEAD~1:/path/tp/foo
将会展示文件的内容,就像在“rev1”版本中一样(注意:需要指定从Git仓库根目录开始的完整路径)
如"恢复Git仓库中已删除的文件"所述,您可以通过checkout快速恢复文件的以前版本。
git checkout $(git rev-list -n 1 HEAD -- "$file")^ -- "$file"
$file
是当前Git存储库根目录中文件的完整路径。)
svn cat foo@1
的操作。Linus 可能认为svn cat -r 1 foo
的行为是 Subversion 的又一个失败(我也这么认为)。 - Arrowmaster