git 应用 --reject/--include 默认使用 --verbose 吗?
Does git apply --reject/--include use --verbose by default?
明白了
git apply --reject
git apply --include
始终打印关于哪些文件已被考虑并从已通过的补丁文件中拒绝的完整信息。因此,当 --reject
选项通过时,git 似乎使用了 --verbose
模式。
--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.
--include
选项对详细级别没有影响:它只是说修补过程应该将更改应用到命名文件,这当然意味着它应该 不 将更改应用于 其他 个文件。也就是说,补丁可能会提到文件 this.txt
、that.py
和 README
。如果你说 "include changes to this.txt
and README
" 你是在暗示 "please don't make any changes to that.py
".
--verbose
选项实际上是一个计数器:使用一次,它将冗长级别从零或 "normal" 提高到 1 或 "verbose",使用两次它会提高到更高级别.然而,这里没有针对更高数字的特殊操作(一些 Git 命令确实有多个级别的冗长,例如,git branch
有两个)。 是一个特殊的negative-1级别,但你不能自己设置它(当git am
应用多个补丁时自动使用,每次应用后提交)。
--reject
选项自动将详细级别提高到至少 1。因此,在内部,选项序列:
git apply --verbose --reject
表示"set the verbosity level to 1, and also set the reject mode",而:
git apply --reject --verbose
表示"set the verbosity level to 2, and also set the reject mode"。
长格式选项 longopt 通常允许使用 no-<em>longopt</em>
到 清除 它们。 (有一些例外,但这不是例外。)因此:
git apply --reject --no-verbose
将启用拒绝模式,同时将冗长级别设置回零("normal" 冗长:某些内容仍会打印)。
明白了
git apply --reject
git apply --include
始终打印关于哪些文件已被考虑并从已通过的补丁文件中拒绝的完整信息。因此,当 --reject
选项通过时,git 似乎使用了 --verbose
模式。
--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.
--include
选项对详细级别没有影响:它只是说修补过程应该将更改应用到命名文件,这当然意味着它应该 不 将更改应用于 其他 个文件。也就是说,补丁可能会提到文件 this.txt
、that.py
和 README
。如果你说 "include changes to this.txt
and README
" 你是在暗示 "please don't make any changes to that.py
".
--verbose
选项实际上是一个计数器:使用一次,它将冗长级别从零或 "normal" 提高到 1 或 "verbose",使用两次它会提高到更高级别.然而,这里没有针对更高数字的特殊操作(一些 Git 命令确实有多个级别的冗长,例如,git branch
有两个)。 是一个特殊的negative-1级别,但你不能自己设置它(当git am
应用多个补丁时自动使用,每次应用后提交)。
--reject
选项自动将详细级别提高到至少 1。因此,在内部,选项序列:
git apply --verbose --reject
表示"set the verbosity level to 1, and also set the reject mode",而:
git apply --reject --verbose
表示"set the verbosity level to 2, and also set the reject mode"。
长格式选项 longopt 通常允许使用 no-<em>longopt</em>
到 清除 它们。 (有一些例外,但这不是例外。)因此:
git apply --reject --no-verbose
将启用拒绝模式,同时将冗长级别设置回零("normal" 冗长:某些内容仍会打印)。