3

不知道Git有没有revision的概念。

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

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

4

3 回答 3

5

我不知道在 Emacs 中这样做,但是:

git diff rev1..rev2

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

 git diff rev1>..rev2 path

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

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

git diff rev1 path

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

于 2012-07-05T09:39:27.373 回答
0

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

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

如果您只想比较某些文件,您还可以使用该--选项来选择哪些文件将包含在 diff 中。

于 2021-02-26T14:35:12.457 回答
0

可以使用 Emacs内置包vc来区分修订。

C-u C-x v DM-x vc-root-diff带有前缀参数)允许区分整个树的任何两个版本。

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

于 2021-12-04T11:07:18.047 回答