Git:如何在git仓库中检出文件的初始版本

3

我在想是否有比显而易见的方法更好地检查文件的初始版本:

git log --reverse [path/to/file]

复制第一个sha1

git checkout [found sha1] [path/to/file]

我们有HEAD来获取最新版本,有^后缀可以回到前一个(或多个)版本,但我没有看到任何好的方法可以回到开头。
1个回答

4

好的,您应该使用命令替换:

git checkout $(git log --follow --pretty=%H path/to/file | tail -n 1) path/to/file

但是并没有任何根本上更简单的东西。Git跟踪内容而不是文件,因此它没有“文件A的第一个版本”的记录 - 沿着历史记录走是找到它的方法。
我去掉了--reverse以使命令更短 - 使用它实际上不会加快速度,因为在内部,它只是找到所有内容并在打印之前反转,而不是边打印边进行。
如果这是你经常做的事情(虽然我不知道为什么),你可以给它取一个别名。

我很担心这种情况。为什么会经常出现让我提出问题呢?我在工作中使用git-p4,但它不支持p4分支。因此,每个代码线的新p4分支都是一个新的git存储库。因此,我经常想要比较文件与该存储库中的第一个版本,以查看新分支中发生了什么更改。当创建该分支时,能够对一个文件进行类似于其在给定的git分支(而非存储库)中的比较将非常有用。 - masukomi

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