Применяется ли git --reject/ -include use --verbose по умолчанию?

Я вижу

git apply --reject
git apply --include

всегда печатать полную информацию о том, какие файлы были рассмотрены и отклонены из переданного файла патча. Ну, это похоже --verbose режим, используемый Git, когда --reject вариант пройден.

Является --verbose опция печати любой другой информации, которая не печатается, опцией --reject? Я не нашел соответствующих деталей в git-apply документация тоже.

git apply --index change-89ded3243ea944156abb9d1c44173d998a4aed59..b3645cd3600b7d1c728c84333b48a20ce5c4eb29.patch
Done applying sandbox package.

git apply --reject change-89ded3243ea944156abb9d1c44173d998a4aed59..b3645cd3600b7d1c728c84333b48a20ce5c4eb29.patch
Checking patch support/gobuild/helpers/python.py...
Checking patch support/gobuild/helpers/target.py...
Checking patch support/gobuild/py/__init__.py...
Checking patch support/gobuild/py/autotools.py...
Checking patch support/gobuild/specs/cayman_pycrypto.py...
Checking patch support/gobuild/targets/cayman_pycrypto.py...
warning: support/gobuild/targets/cayman_pycrypto.py has type 100644, expected 100755
Applied patch support/gobuild/helpers/python.py cleanly.
Applied patch support/gobuild/helpers/target.py cleanly.
Applied patch support/gobuild/py/__init__.py cleanly.
Applied patch support/gobuild/py/autotools.py cleanly.
Applied patch support/gobuild/specs/cayman_pycrypto.py cleanly.
Applied patch support/gobuild/targets/cayman_pycrypto.py cleanly.
Done applying sandbox package.

1 ответ

Решение

--include Параметр не влияет на уровни детализации: он просто говорит, что процесс исправления должен применять изменения к именованным файлам, что, конечно, подразумевает, что он не должен применять изменения к другим файлам. То есть патч может упоминать файлы this.txt, that.py, а также README, Если вы говорите "включить изменения в this.txt а также README "Вы намекаете", пожалуйста , не вносите никаких изменений в that.py ".

--verbose option на самом деле является счетчиком: используется один раз, он поднимает уровень многословия с нуля или "нормальный" до 1 или "многословный", и, если его использовать дважды, поднимает его выше этого. Однако здесь нет специальных действий для больших чисел (некоторые команды Git имеют несколько уровней многословия, например, git branch имеет два). Существует специальный уровень минус 1, но вы не можете установить его самостоятельно (он используется автоматически, когда git am применяет несколько патчей, с коммитами после каждого применения).

--reject Опция автоматически повышает уровень детализации как минимум до 1. Следовательно, внутренне, последовательность опций:

git apply --verbose --reject

означает "установить уровень детализации на 1, а также установить режим отклонения", а:

git apply --reject --verbose

означает "установить уровень детализации на 2, а также установить режим отклонения".

Длинные опции формы longopt обычно позволяют использовать no-longopt очистить их. (Есть некоторые исключения, но это не исключение.) Поэтому:

git apply --reject --no-verbose

включит режим отклонения при установке уровня детализации обратно на ноль ("нормальная" детализация: некоторые вещи все еще печатаются).

Другие вопросы по тегам