Git 日志历史简化,git 日志手册中的详细说明示例

Git log history simplification, elaborations example in git log's manual

大家都对 git 日志中简化历史记录的帮助中的示例和详细说明感到满意吗? 使用此 help/manual 和命名示例时,我在理解上遇到了一些负担。

  .-A---M---N---O---P---Q
 /     /   /   /   /   /
I     B   C   D   E   Y
 \   /   /   /   /   /
  `-------------'   X
  • I is the initial commit... foo exists with contents “asdf”, and a file quux exists with contents “quux”....
  • In A, foo contains just “foo”...
  • B contains the same change as A...
  • C does not change foo, but its merge N changes it to “foobar”...
  • P is TREESAME to O...

看起来术语 TREESAME 和 !TREESAME 将出现在单个 file/directory 的范围内。不用于表达多个文件的提交 属性。这是真的吗?

描述中的 TREESAME 表达式应用于每个提交的树(在比较它们时成对) 从您的 [=13= 中执行任何特定于文件的过滤之后] 命令。例如:

git log --simplify-merges

比较每棵树中的每个文件以确定两个提交树是否"the same",而:

git log --simplify-merges -- README

仅比较每棵树中的 README 文件,并且:

git log --simplify-merges -- README dir1 dir2

在比较树之前留下 README 和树中两个目录中的任何文件。