Почему двойная точка против тройной точки в git ведет себя по-разному для diff и log - PullRequest
0 голосов
/ 02 ноября 2018

Прежде всего: на StackOverflow уже есть два вопроса с исчерпывающими ответами по этой теме, но я все еще озадачиваю. Я вроде понимаю «что», но не «почему».

Мой вопрос таков: почему показывает git log A..B (двойная точка) список коммитов от B до A, но чтобы получить разность того же набора коммитов, нужно написать git diff A...B (тройная точка) .

Не было бы гораздо более последовательным, если бы git log и git diff обрабатывали бы диапазоны фиксации таким же образом? Теперь они, кажется, ведут себя ортогонально друг другу.

Может быть, мне не хватает какого-то понимания о том, почему он так устроен?

Git log vs diff

1 Ответ

0 голосов
/ 02 ноября 2018

git diff всегда работает на только два коммита (refs), никогда больше никогда, и показывает различия между ними. Он ничего не делает с «диапазоном», просто два коммита.

git log, с другой стороны, отображает диапазоны коммитов, и вы можете указать любое количество диапазонов различными способами. Итак, вы видите, что git diff и git log будут вести себя по-разному.

Я не думаю, что вы можете даже сравнить два коммита с диапазоном коммитов. Я думаю, что более того, «Синтаксис .. является сокращением для« от ... до », и это сокращение будет означать разные вещи в разных контекстах. Но затем мы поняли, что очень часто необходимо» от последнего общего предка. ... к идиоме в git diff, поэтому мы сделали похожий, но немного другой синтаксис .... "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...