git在编辑器中显示旧版本的文件

kod*_*odu 22 git

我想我可以使用'git log filename'显示文件的旧版本以显示提交,然后使用'git show commit-id:filename'作为旧版本.但它只是减少了它.

我希望能够在emacs中查看它,所以我可以按照我习惯的方式进行导航,以便有语法高亮显示.我发现我无法将git core.pager设置为emacs,因为emacs无法从stdin读取.

有谁知道我怎么做到这一点?或者你有另一种检查旧版本文件的好方法吗?

Sch*_*eis 28

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

git show commit-id:filename > oldfile
Run Code Online (Sandbox Code Playgroud)

然后在emacs中打开该文件.


Nim*_*lar 7

如果您正在使用bash,则可以使用"处理替换".

gvim <(git show commit-id:filename)
Run Code Online (Sandbox Code Playgroud)


Sam*_*lam 7

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

 git show commit-id:filename | vim - -n
Run Code Online (Sandbox Code Playgroud)

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