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

时间:2016-02-01 15:03:07

标签: git history git-log simplification

你们都熟悉git log帮助历史简化的例子和详细说明吗? 在使用本帮助/手册和命名示例时,我遇到了一些理解上的负担。

  .-A---M---N---O---P---Q
 /     /   /   /   /   /
I     B   C   D   E   Y
 \   /   /   /   /   /
  `-------------'   X
  
      
  • 我是初始提交... foo存在内容“asdf”,并且文件quux存在,内容为“quux”....
  •   
  • 在A中,foo只包含“foo”......
  •   
  • B包含与A ...相同的更改
  •   
  • C不会改变foo,但它的合并N会将其更改为“foobar”......
  •   
  • P是TREESAME到O ...
  •   
  • 与任何父母中没有的变化合并的感觉包括在内? 请参阅git log帮助中的合并N说明
  • 文件的quux经历了从O到合并P的过渡的一些修改,为什么帮助中的详细说明将P作为树名来对抗O?

看起来在单个文件/目录的范围内可以看到术语TREESAME和!TREESAME。不得用于表示多个文件的提交属性。这是真的吗?

1 个答案:

答案 0 :(得分:1)

描述中的TREESAME表达式应用于每个提交的树(在比较时成对)git log命令执行任何特定于文件的过滤后。例如:

git log --simplify-merges

比较每棵树中的每个文件以确定两个提交树是否“相同”,而:

git log --simplify-merges -- README

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

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

在比较树之前,留下README以及树中两个目录中的所有文件。