协慌网

登录 贡献 社区

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

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

答案

你可以使用git show

$ git show REVISION:path/to/file

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

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

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

请注意,路径来自存储库的根目录,除非它以./ 或../ 开头以指示相对路径。即使在相对于当前目录的路径中,Git for Windows 也需要正斜杠。有关更多信息,请查看git-show的手册页。

按日期执行此操作如下所示:

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

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

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

  1. 启动 gitk:

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

  3. 要查看所选修订的文件:

    • 单击 “树” 单选按钮。这将显示该修订版本的文件树的根目录。
    • 深入查看您的文件。