git log - all有什么作用?

时间:2015-04-20 19:25:09

标签: git

为什么git log只是记录所有最新提交?

这是什么意思?

--all
       Pretend as if all the refs in refs/ are listed on the command line as <commit>.

我认为,一旦翻译成普通英语,它就意味着显示所有最新的提交。

有人可以澄清。

3 个答案:

答案 0 :(得分:12)

不,这并不代表它显示所有最新的提交。它显示了分支,标记和其他引用历史记录中的所有提交,但它不显示任何引用无法访问的提交。当您只运行git commit --amend时,无法从任何参考文件中获取的提交的典型示例:之前的提交仍然存在于本地,但它不再可访问且赢得了显示在git log --all中。但git reflog将确认它确实存在。

至于为什么--all不是默认值:您通常不会想要这样。例如,如果您使用的是分支主数据,并且运行git log,则通常您对任何功能分支的历史记录都不感兴趣,您通常希望查看主数据库的历史记录。

如果您通常需要--all行为,我建议您创建一个别名。

答案 1 :(得分:2)

根据这里的帖子git --all missing commit

  

log --all仅用于refs /中引用的列表提交(如标签,磁头......)

同一页也说:

  

--all选项不会告诉git log显示所有提交。它要求所有refs的日志,基本上是你的分支和标签。

答案 2 :(得分:0)

因为想要查看所有分支/等的历史。在工作时并不常见,因为想要查看特定事物的历史记录,通常是当前的分支。

  

我认为,一旦翻译成普通英语,就意味着显示所有最新的提交。

没有。 refs /包含分支和标签之类的东西。如果要查看特定分支或特定分支集的历史记录,请在git log命令中列出它们。如果要查看所有分支/标签/等的历史记录,则可以使用--all快捷方式。

Git log不仅显示'最新提交':它显示符合给定条件的所有提交,其中有多个维度。例如,提交的分支是特定范围内的提交等。