- 鉴于另一个问题的答案,并且
- 鉴于git-log和git-whatchanged的手册页都说他们从git-rev-list 中提取...
...那么这两个命令之间有什么区别?为什么要费心拥有他们两个?
...那么这两个命令之间有什么区别?为什么要费心拥有他们两个?
提交 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
(这样可以避免这个问题)
'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' 以差异/补丁形式显示更改。
我不完全同意。你能看到合并更改的文件log
吗?
我没有找到此功能,对于了解文件何时合并到某个分支中非常有用,例如:
file c.c
inbranch1
的提交日期为 2012 年 1 月 1 日,如果您合并到branch2
,并且稍后想跟踪该提交的引入日期branch2
,可以git log
提供帮助吗?如果你有合并,你可以在其中搜索git whatchanged -m sha1