如何在Fugitive中编辑特定版本的文件

3
我的存储库中将一些内容从一个 .c 文件移动到了一个 .h 文件中,我想比较它们以确保新的头文件是正确的。这是为了 Gerrit review ,我假设使用 Gerrit 工具链没有简单的方法来完成这个任务。
我尝试在一个窗口中编辑 .h 文件和旧版本的 .c 文件。当我发出命令 Gedit FETCH_HEAD:path/from/root/to/file.c 时,总是出现以下错误:E492: 不是编辑器命令:Gedit FETCH_HEAD:path/from/root/to/file.c。我还尝试使用哈希命令。
我错过了什么?

1
当当前缓冲区被Git控制或在Git目录中启动Vim时,才可以使用Fugitive命令。在调用“:Gedit”命令之前,您是否正在编辑受Git控制的文件? - Peter Rincker
显然不是这样。我总是忘记我必须这样做。如果你想创建一个答案,基本上说“在发出:Gedit命令之前,请确保您正在编辑存储库中的文件”,我会接受它。 - Stephen Rasku
2个回答

3

只有当当前缓冲区受Git控制或者vim在Git目录下第一次启动时,才能使用Fugitive命令。

在执行:Gedit命令之前,先打开Git仓库中的任意文件。

:e path/from/root/to/file.c
:Gedit FETCH_HEAD:%

注意:使用%代表当前文件。请参见:h c_%

0
使用 "git show" 命令获取您想要比较的文件/版本:
> git show version1:file1 > any_name_1
> git show version2:file2 > any_name_2

然后在gedit编辑器中打开文件或(更好的选择)使用一些差异工具,例如KDiff3,以查看两个文件/版本之间的差异。

> kdiff3 any_name_1 any_name_2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接