2010-06-27 2 views
2

Я не могу понять, почему git show-branch не дает мне такую ​​же полную историю, что и git log -graph. Почему возникает следующее несоответствие?git show-branch не выводит полную историю изменений?

$ git log --graph --oneline --date-order 
* 786c9bd Merge branch 'master' into testbr 
|\ 
* | dda9989 ch2 to couch 
* | 05d0851 chg 1 to couch 
| * 3df86c2 change 1 to tv 
| * 900ad58 added tv 
|/ 
* 76352a8 mess 
$ git show-branch 
! [master] change 1 to tv 
* [testbr] Merge branch 'master' into testbr 
-- 
- [testbr] Merge branch 'master' into testbr 
+* [master] change 1 to tv 

Далее, если я создаю новую ветвь (см ниже), то мерзавец шоу-отрасль дает выход я ожидаю.

$ git branch foo testbr~3 
$ git show-branch 
! [foo] mess 
! [master] change 1 to tv 
    * [testbr] Merge branch 'master' into testbr 
--- 
    - [testbr] Merge branch 'master' into testbr 
+* [master] change 1 to tv 
+* [master^] added tv 
    * [testbr^] ch2 to couch 
    * [testbr~2] chg 1 to couch 
++* [foo] mess 

ответ

2

По сравнению с git log, git show-branch только показывает:

  • ветви (HEAD то есть '*' и non-HEAD: '!', которые имеют отношение с головой)
  • коммиты из ветвей связанный с ГОЛОВКОЙ (ниже «--»):
    • '*' совершает от HEAD ветви
    • '+' совершающей от non-HEAD ветвей
    • '*+' коммитов из non-HEAD ветвей также является частью HEAD филиала
    • '-' слияние совершает

и их коммиты), а не все совершает ,

Тот факт, что ваш второй пример выглядит как начальный git log означает только то, что эти коммиты отображаются во втором шоу-ветви связаны с HEAD ветви, что делает их закрытие классической фиксации графика (который производит журнал мерзавец)