Использование диапазонов коммитов с Git Log
Когда вы используете диапазоны фиксации, такие как ..
и ...
с git log
, разница между ними заключается в том, что для ветвей A и B
git log A..B
покажет вам все коммиты, которые есть у B, а у A нет , тогда как
git log A...B
покажет вам оба коммиты, которые есть у A, а которых нет, и коммиты, которые есть у B, которых нет у A, или, другими словами, будет отфильтровывать все коммиты, которые совместно используются A и B, таким образом, показывая только коммиты, которые они не совместно используют .
Визуализация с диаграммами Венна и деревьями коммитов
Вот визуальное представление git log A..B
. Коммиты, которые содержит ветвь B, которых нет в A, возвращаются диапазоном коммитов, они выделяются красным цветом на диаграмме Венна и обводятся синим цветом в дереве коммитов:
Это диаграммы для git log A...B
. Обратите внимание, что коммиты, которые являются общими обеими ветвями, не возвращаются командой:
Настройка диапазона фиксации тройной точки ...
Более полезная
Вы можете сделать диапазон фиксации тройной точки ...
более полезным в команде журнала, используя опцию --left-right
, чтобы показать, какие коммиты принадлежат какой ветви:
$ git log --oneline --decorate --left-right --graph master...origin/master
< 1794bee (HEAD, master) Derp some more
> 6e6ce69 (origin/master, origin/HEAD) Add hello.txt
В приведенном выше выводе вы увидите, что коммиты, принадлежащие master
, имеют префикс <
, а коммиты, принадлежащие origin/master
, имеют префикс >
.
Использование диапазонов коммитов с Git Diff
Когда-нибудь я мог бы добавить свое собственное объяснение того, как диапазоны фиксации работают с git diff
, но сейчас вы, возможно, захотите проверить Каковы различия между двойной точкой ".." и тройной точкой "..." в диапазонах коммитов Git diff? .
Смотрите также