31

我发现我可以使用“git log filename”显示文件的旧版本来显示提交,然后使用“git show commit-id:filename”来显示旧版本。但它只是减少了它。

我希望能够在 emacs 中查看它,这样我就可以按照我习惯的方式进行导航,并且可以突出显示语法。我发现我无法将 git core.pager 设置为 emacs,因为 emacs 无法从标准输入读取。

有谁知道我该怎么做?还是您有另一种检查旧版本文件的好方法?

4

4 回答 4

35

只需使用>并将其放入可以在 emacs 中打开的文件中。

git show commit-id:filename > oldfile

然后在emacs中打开文件。

于 2013-08-09T13:54:13.377 回答
9

如果您正在使用bash,则可以使用 Process Substitution。

gvim <(git show commit-id:filename)
于 2013-11-08T10:43:17.003 回答
5

使用以下 Vim 命令,可以查看文件的先前版本,而无需随后清理任何内容。

 git show commit-id:filename | vim - -n

解释:vim 命令的 dash 参数使 vim 加载来自标准输入的任何内容。-n 选项禁止创建交换文件。

于 2019-04-03T18:42:23.950 回答
3

Emacs 包 git-timemachine 允许您在文件的 git 修订中来回切换:

https://github.com/pidu/git-timemachine

于 2014-07-02T07:24:48.897 回答