39
  1. 鉴于另一个问题的答案,并且
  2. 鉴于git-loggit-whatchanged的​​手册页都说他们从git-rev-list 中提取...

...那么这两个命令之间有什么区别?为什么要费心拥有他们两个?

4

3 回答 3

39

提交 52f425e1 (2013年8 月 30 日)提到:

鼓励新用户改用 ' log'。这些天来,这些命令是统一的,只是有不同的默认值

' git log' 仅在 2005 年 6 月上旬添加时允许您查看日志消息并且没有差异。直到 2006 年 4 月上旬,该命令才学会采用差异选项。
因此,高级用户倾向于使用whatchanged自 2005 年 5 月中旬以来已经存在并支持差异选项的 ' '。


这就是新版本的手册页git whatchanged现在所说的:

鼓励新用户git log改用。该 whatchanged命令基本相同,git log 但默认显示原始格式差异输出并跳过合并。

保留该命令主要是出于历史原因;许多很久以前学习 Git 的人git log是通过阅读 Linux 内核邮件列表发明的,他们的手指都经过训练可以打字

作为torek 评论git whatchanged等价于:

git log --raw --no-merges

(这样可以避免这个问题

于 2013-09-03T06:11:33.270 回答
13

'git log' 以最简单的形式显示每个提交(sha、作者、日期、消息),而 'git whatchanged' 显示提交以及更改的文件。例如:

$ git log
commit db9f525674443314a9822a6bd6c3acce49c8f8d6
Author: ...
Date:   Wed Apr 4 22:55:33 2012 -0700

Add more

commit eed0b7aa3cad5d985b5f1d52f3c0605339c119a1
Author: ...
Date:   Tue Apr 3 20:36:04 2012 -0700

del bing/one.c

但改变了什么:

$ git whatchanged
commit db9f525674443314a9822a6bd6c3acce49c8f8d6
Author: ...
Date:   Wed Apr 4 22:55:33 2012 -0700

Add more

:100644 100644 f2e4113... d415016... M  bar.c

commit eed0b7aa3cad5d985b5f1d52f3c0605339c119a1
Author: ...
Date:   Tue Apr 3 20:36:04 2012 -0700

del bing/one.c

:100644 000000 e69de29... 0000000... D  bing/one.c

有很多选项可以更改每个命令的输出。例如 'git whatchanged -p' 以差异/补丁形式显示更改。

于 2012-04-05T06:00:51.117 回答
3

我不完全同意。你能看到合并更改的文件log吗?

我没有找到此功能,对于了解文件何时合并到某个分支中非常有用,例如:

file c.cinbranch1的提交日期为 2012 年 1 月 1 日,如果您合并到branch2,并且稍后想跟踪该提交的引入日期branch2,可以git log提供帮助吗?如果你有合并,你可以在其中搜索git whatchanged -m sha1

于 2012-08-22T22:55:06.377 回答