......这两个命令的区别是什么?为什么要麻烦他们两个?
答案 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 comments,git 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
,之后我想跟随该提交的引入日期在branch2
,git log
可以提供帮助吗?如果您有合并,则可以使用git whatchanged -m sha1