是否有快速的Git命令来查看文件的旧版本?

雨燕双飞 提交于 2019-12-10 16:50:52

Git中是否有命令可以查看(转储到stdout或$PAGER$EDITOR )特定文件的特定版本?


#1楼

如果您喜欢GUI,则可以使用gitk:

  1. 用以下命令启动gitk:

    gitk /path/to/file
  2. 在屏幕顶部选择修订版本,例如按描述或日期。 默认情况下,屏幕的下部显示该版本的差异(对应于“补丁”单选按钮)。

  3. 要查看所选版本的文件:

    • 单击“树”单选按钮。 这将显示该修订版中文件树的根。
    • 深入到您的文件。

#2楼

按日期执行如下操作:

git show HEAD@{2013-02-25}:./fileInCurrentDirectory.txt

请注意, HEAD@{2013-02-25}表示此存储库中的“ HEAD位于2013-02-25上”(使用reflog ),而不是“此历史记录中2013-02-25之前的最后一次提交”。


#3楼

除了Jim Hunziker的回答,

您可以将修订版中的文件导出为

git show HEAD@{2013-02-25}:./fileInCurrentDirectory.txt > old_fileInCurrentDirectory.txt

希望这可以帮助 :)


#4楼

您可以将git show与来自存储库根目录的路径一起使用( ./../用于相对路径):

$ git show REVISION:path/to/file

将REVISION替换为您的实际修订版(可以是Git提交SHA,标签名称,分支名称,相对提交名称,或在Git中标识提交的任何其他方式)

例如,要从4次提交之前查看文件repository-root/src/main.c的版本,请使用:

$ git show HEAD~4:src/main.c

Git for Windows即使在相对于当前目录的路径中也需要正斜杠。 有关更多信息,请查看git-show的手册页。


#5楼

git log -p会显示提交日志,还会显示每个提交的差异(合并提交除外)。 然后,您可以按/ ,输入文件名,然后按enter 。 按np转到下一个/上一个事件。 这样,您不仅会看到文件中的更改,而且还会看到提交信息。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!