2017-01-31 20 views
0

Git, кажется, обрабатывает git branch команду --contains, --merge и --no-merge варианты непоследовательно.Git branch содержит - наследие и консистенция

Этот вопрос может быть лучше подан на Git mailing list, но может быть полезно разместить его здесь.

Я обнаружил, что, задав несколько --contains параметров команды git branch, как это:

git branch --contains <hash1> --contains <hash2> 

рассматривается как или операции, где ветви, которые содержат либо <hash1> или <hash2> печатаются.

Однако, задав несколько --merged или --no-merged опции в git branch команду:

git branch --merged <hash1> --merged <hash2> 

игнорирует <hash1> и печатает только ветви сливаются в <hash2>, а это означает, что она такая же, как если бы вы казнены:

Это подтверждено в версиях версии 1.8 и 2.10 Git (который был построен из источника).

Учитывая, что документация определяет конкретный формат этих команд, и все же Git позволяет то, что я могу только предположить, что это их злоупотребления, может кто-нибудь сказать мне, если эти особенности бы полезно в некоторых краях случае я не считая?


я ожидал бы, что, задав несколько --contains вариантов рассматриваются как операция и будет более полезным, чем лечить его как или которое может быть достигнуто путем конкатенации последовательных вызовов команды ,


Примечание стороны: Команда git branch, кажется, до сих пор поддерживают старую форму --contains команды, которая не была --with, даже если документы больше не делает никакого упоминания о нем.

ответ

0

На данный момент это невозможно. git branch --contains SHA доступен только для определенной фиксации.

Множественный --contains в git branch команды будет выводить все ветви в любом из фиксации (это делает или операции).

+0

Возможно, мой вопрос был не ясен. Изменит ли поведение Git, когда несколько опций '--contains' окажут негативное влияние на любую существующую функциональность git? Я также обновил свой вопрос, пытаясь сделать его более ясным. – nonsensickle

+0

Нет, как вы протестировали, если вы используете несколько '-contains', результат будет содержать все ветви любого содержащего commit. –