Каковы различия между двойной точкой “..” и тройная точка “…” в Мерзавце фиксирует диапазоны?

378
задан Pat Notz 16 July 2014 в 18:21
поделиться

1 ответ

Это зависит от того, используете ли Вы log команда или diff команда. В log случай, это находится в man git-rev-parse документация:

Для исключения фиксаций, достижимых из фиксации, префикс ^ нотация используется. Например, фиксации средств ^r1 r2, достижимые от r2, но, исключают тех достижимых из r1.

Эта операция присвоения появляется так часто, что существует стенография для нее. Когда у Вас есть две фиксации r1 и r2 (названный согласно синтаксису, объясненному в ОПРЕДЕЛЕНИИ ИЗМЕНЕНИЙ выше), можно попросить фиксации, которые достижимы от r2, исключая тех, которые достижимы от r1 "^r1 r2", и это может быть записано как "r1.. r2".

А подобную нотацию "r1... r2" называют симметричным различием r1 и r2 и определяют как "r1 r2 - не $ (основа слияния мерзавца - весь r1 r2)". Это - набор фиксаций, которые достижимы или от одного из r1 или от r2, но не от обоих.

, Который в основном означает, что Вы получите все фиксации, которые находятся в любом из двух ответвлений, но не в обоих.

В diff случай, это находится в man git-diff документация:

  git diff [--options] <commit>...<commit> [--] [<path>...]

      This form is to view the changes on the branch containing and up to
      the second <commit>, starting at a common ancestor of both
      <commit>. "git diff A...B" is equivalent to "git diff
      $(git-merge-base A B) B". You can omit any one of <commit>, which
      has the same effect as using HEAD instead.

, Который немного нечеток. В основном это означает, что это показывает только различия в том ответвлении по сравнению с другим ответвлением: это ищет последнюю общую фиксацию с первым committish, который Вы дали ему, и затем diffs второй committish к этому. Это - простой способ видеть то, какие изменения внесены в том ответвлении, по сравнению с этим ответвлением, не замечая изменения в этом ответвлении только.

Эти .. несколько более просто: В git-diff случай, это совпадает с git diff A B и просто diffs против B. В log случай, это показывает все фиксации, которые находятся в B, но не в A.

229
ответ дан TOP KEK 22 November 2019 в 23:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: