在Git中是否有一个命令可以查看(转储到stdout,或者在$PAGER
或中$EDITOR
)特定文件的特定版本?
你可以使用git show
:
$ git show REVISION:path/to/file
将REVISION替换为您的实际修订版(可以是Git提交SHA,标记名称,分支名称,相对提交名称或在Git中标识提交的任何其他方式)
例如,要查看./
4次提交前的文件版本,请使用:
$ git show HEAD~4:src/main.c
请注意,路径来自存储库的根目录,除非它以./或../开头以指示相对路径.即使在相对于当前目录的路径中,Git for Windows也需要正斜杠.有关更多信息,请查看手册页../
.
按日期执行此操作如下所示:
git show HEAD@{2013-02-25}:./fileInCurrentDirectory.txt
需要注意的是HEAD@{2013-02-25}
指在这个仓库"里HEAD是在2013年2月25日"(使用了引用日志),而不是"2013年2月25日之前的最后一次提交这个分支的历史".
如果您喜欢GUI,可以使用gitk:
启动gitk:
gitk /path/to/file
选择屏幕顶部的修订版本,例如按说明或日期.默认情况下,屏幕的下半部分显示该修订的差异(对应于"补丁"单选按钮).
要查看所选修订的文件:
单击"树"单选按钮.这将显示该修订版本的文件树的根目录.
深入查看您的文件.
您还可以使用该命令指定commit hash
(通常也称为commit ID
).git show
git show
显示给定文件的所有更改的日志 git log /path/to/file
在显示的更改列表中,它显示了commit hash
诸如commit 06c98...
(06c98 ...是提交哈希)
复制 commit hash
git show
使用commit hash
步骤3和path/to/file
步骤1 的步骤运行命令.
注意:添加./
指定相对路径的时间似乎很重要,即git show b2f8be577166577c59b55e11cfff1404baf63a84:./flight-simulation/src/main/components/nav-horiz.html
.
除了Jim Hunziker的回答,
您可以从修订版中导出文件,
git show HEAD@{2013-02-25}:./fileInCurrentDirectory.txt > old_fileInCurrentDirectory.txt
希望这可以帮助 :)
git log -p
将不仅显示提交日志,还显示每个提交的差异(合并提交除外).然后你可以按/
,输入文件名并按enter
.按n
或p
转到下一个/上一个事件.这样,您不仅可以看到文件中的更改,还可以查看提交信息.
要快速查看与旧版本文件的区别,请执行以下操作:
git show -1 filename.txt
>与文件的最新版本进行比较
git show -2 filename.txt
>与第二个修订版进行比较
git show -3 fielname.txt
>与最新的第三修订版进行比较