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