为什么git log
只是记录所有最新提交?
这是什么意思?
--all
Pretend as if all the refs in refs/ are listed on the command line as <commit>.
我认为,一旦翻译成普通英语,它就意味着显示所有最新的提交。
有人可以澄清。
答案 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不仅显示'最新提交':它显示符合给定条件的所有提交,其中有多个维度。例如,提交的分支是特定范围内的提交等。