对于我当前的文件,我想“返回”到版本__。我如何在Git中做到这一点?
我不希望该版本成为我最新的版本。我只是想看看当时有什么代码。
答案 0 :(得分:1)
如果您不想覆盖工作树中的版本,请使用git show
:
git show rev:path/to/file
rev
通常是任何表达式(参见git-rev-parse(1)中的“指定修订”部分),可以解析为提交 1 。
path/to/file
应该是感兴趣的文件的路径(从存储库的顶层开始)。
例如,从“修复错误”提交中显示src/config.c
:
% git log --oneline
7c07566 second feature
bbdbea8 fix bugs
1cf42c8 first feature
82cfa1d initial commit
% git show bbdbea8:src/config.c
bbdbea8
也可以是完整的对象名称(我的测试存储库中的bbdbea801c2a465a8c509befa46174bad4fd9fd4
),或者表达式HEAD~
或HEAD^
(如果您已经知道提交的话)你感兴趣的是当前HEAD的第一个父母。)
1
在rev:path
语法中,rev
不一定是“commit-ish”,它可以是任何“树状”(并且路径从指定的树而不是顶层开始)。
Git还可以比较不同版本的文件,而无需显式提取每个文件:
显示自bbdbea8以来src/config.c
所做的累积更改:
git diff bbdbea8 -- src/config.c
或者,有时一点一点地查看历史记录是有用的。自bbdbea8以来显示每个更改src/config.c
:
git log -p --reverse bbdbea8.. -- src/config.c
答案 1 :(得分:0)
尝试以下方法,只检查文件的特定版本
git checkout revision -- filename