如何在Git中将文件与特定版本进行比较?

3
我不知道Git是否有版本修订的概念。
我想比较当前工作副本与旧版本(不一定是最后一次提交)。
如果可以在Emacs中完成这个操作,那就太好了。
3个回答

7

我不知道如何在Emacs中处理这个问题,但是:


git diff rev1..rev2

这将为整个代码库执行您想要的操作。然后,您可以添加以下内容:

 git diff rev1>..rev2 path

path可以是文件的绝对路径,也可以是目录路径,因此您可以比较子树。

如果您想要比较工作副本 - 只需指定修订版本1:

git diff rev1 path

修订代码可以是特殊名称,例如,HEAD^..HEAD 表示从最后一个到当前的版本,或者是它们在日志中的 SHA-1 值。

有没有命令可以显示修订历史记录?因为我甚至不知道我想要哪个修订版本。 - eugene
如何将其更改为在两个不同版本的两个不同路径之间进行差异比较? - Kamafeather

1
可以使用 Emacs 内置的vc 来对比修订版本。
使用 C-u C-x v D(带有前缀参数的M-x vc-root-diff)可以对整个树的任意两个修订版本进行比较。
使用 C-u C-x v =(带有前缀参数的M-x vc-diff)可以对当前文件集进行相同操作(文件集可以被粗略地定义为一组标记文件)。

1

要在Emacs中执行此操作(使用magit),您可以:

  1. 从magit缓冲区按下 d 打开 diff 菜单
  2. 按下 r 选择要在差异中使用的提交范围。或者,您可以突出显示一系列提交,它们将自动被选择。

如果您只想差异化某些文件,则还可以使用 -- 选项选择将包含在差异中的文件。


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