git-log和git-whatchanged之间的区别?

时间:2012-04-05 04:31:54

标签: git git-log

  1. this answer另一个问题,
  2. 鉴于git-loggit-whatchanged的手册页都说他们来自git-rev-list ......
  3. ......这两个命令的区别是什么?为什么要麻烦他们两个?

3 个答案:

答案 0 :(得分:24)

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

  

鼓励新用户使用' log'代替。目前,这些命令是统一的,只有不同的默认值

     

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


这就是new version of the man page for git whatchanged现在所说的:

  

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

     

该命令主要是出于历史原因;很久以前通过阅读Linux内核邮件列表发明了git log之前很久就学会了Git的人的手指。

作为torek commentsgit log等价物将是:

git log --raw --no-merges

(这会避免this question

答案 1 :(得分:13)

在最简单的形式中,'git log'显示每个提交(sha,author,date,message),而'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'显示diff / patch形式的变化。

答案 2 :(得分:3)

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

我没有找到这个功能,对于知道文件何时在某个分支中合并非常有用,例如:

file c.c中的

branch1的提交日期是2012年1月1日,如果您合并到branch2,之后我想跟随该提交的引入日期在branch2git log可以提供帮助吗?如果您有合并,则可以使用git whatchanged -m sha1

在其中进行搜索