如何在 Git 中比较具有特定修订版的文件



我不知道 Git 是否有修订的概念。

我想将当前的工作副本与它的旧版本(不一定是最后一次提交)进行比较。

如果它可以在 Emacs 中完成,那就太好了。

我不知道

在Emacs中这样做,但是:

git diff rev1..rev2

将为整个存储库执行您想要的操作。然后,您可以添加:

 git diff rev1>..rev2 path

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

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

git diff rev1 path

修订代码可以是特殊名称,例如,HEAD^..HEAD表示最后到当前,也可以是日志中的 SHA-1 值。

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

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

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

可以使用 Emacs 内置的软件包vc来区分修订版。

C-u C-x v DM-x vc-root-diff带有前缀参数)允许对整个树的任何两个修订进行差异。

C-u C-x v =(带有前缀参数的M-x vc-diff)允许对当前文件集(可以大致定义为标记文件的集合)执行相同的操作。

最新更新