git是否适用--reject / - 默认包括使用--verbose?

时间:2017-05-29 08:35:50

标签: git git-diff git-patch git-apply

我看到了

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 个答案:

答案 0 :(得分:0)

--include选项对详细级别没有影响:它只是说修补过程应该对命名文件应用更改,这当然意味着它应应用更改其他文件。也就是说,补丁可能会提到文件this.txtthat.pyREADME。如果您说"包含对this.txtREADME"的更改您暗示"请不要that.py"进行任何更改。

--verbose选项实际上是一个计数器:使用一次,它会将详细级别从零或“#34; normal"到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

将启用拒绝模式,同时将详细级别设置为零("正常"详细程度:某些内容仍然打印)。