Это зависит от того, используете ли Вы 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.