我不知道 Git 是否有修订的概念。
我想将当前的工作副本与它的旧版本(不一定是最后一次提交)进行比较。
如果它可以在 Emacs 中完成,那就太好了。
在Emacs中这样做,但是:
git diff rev1..rev2
将为整个存储库执行您想要的操作。然后,您可以添加:
git diff rev1>..rev2 path
path
可以是文件的绝对路径,也可以是目录的路径,因此您可以比较子树。
如果你想比较工作副本 - 只需指定修订版 1:
git diff rev1 path
修订代码可以是特殊名称,例如,HEAD^..HEAD
表示最后到当前,也可以是日志中的 SHA-1 值。
要在 Emacs 中执行此操作(使用 magit),您可以:
- 从 magit 缓冲器按
d
打开diff
菜单 - 按
r
选择要在差异中使用的提交范围。或者,您可以突出显示一系列提交,它们将自动被选中。
如果只想比较某些文件,还可以使用 --
选项选择将包含在差异中的文件。
可以使用 Emacs 内置的软件包vc
来区分修订版。
C-u C-x v D
(M-x vc-root-diff
带有前缀参数)允许对整个树的任何两个修订进行差异。
C-u C-x v =
(带有前缀参数的M-x vc-diff
)允许对当前文件集(可以大致定义为标记文件的集合)执行相同的操作。