Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.43.1 → 2.47.1 no changes
- 2.43.0 11/20/23
- 2.35.1 → 2.42.3 no changes
- 2.35.0 01/24/22
- 2.18.1 → 2.34.8 no changes
- 2.18.0 06/21/18
- 2.10.5 → 2.17.6 no changes
- 2.9.5 07/30/17
- 2.1.4 → 2.8.6 no changes
- 2.0.5 12/17/14
描述
向远程仓库发送缺失对象,并更新远程分支。
注意: 如果你的 libcurl 的版本超过 7.16,这个命令会暂时失效。早于 7.16,这个命令会被暂时禁用,因为有报告说这个组合不起作用,并且有时会破坏仓库。
选项
- --all
-
不要假设远程仓库的当前状态是完整的,要验证整个本地引用的历史中的所有对象是否存在于远程仓库。
- --force
-
通常情况下,命令拒绝更新一个不是用来覆盖它的本地引用的祖先远程引用。 这个标志可以禁止这种检查。 这意味着远程仓库可能会丢失提交,使用时要小心。
- --dry-run
-
做除了实际发送更新外的所有事。
- --verbose
-
报告正在本地行走的对象的列表和成功发送到远程仓库的对象的列表。
- -d
- -D
-
从远程仓库中删除 <引用>。 指定的分支不能是远程的 HEAD。 如果指定了 -d,还必须满足以下其他条件:
-
远程 HEAD 必须解析到一个本地存在的对象
-
指定的分支解析到一个本地存在的对象
-
指定的分支是远程 HEAD 的一个祖先
-
- <引用>…
-
要更新的远程引用。
指定引用
一个 <引用> 规范既可以是一个单一的模式,也可以是一对由冒号 ":" 隔开的模式(这意味着一个引用名称中不能有冒号)。 一个单一的模式 <名称> 只是 <名称>:<名称> 的一个缩写。
每个模式对 <src>:<dst> 由源端(冒号之前)和目标端(冒号之后)组成。 要推送的引用是通过找到与源端相匹配的匹配物来确定的,而推送的位置是通过目的地端来确定的。
-
如果 <src> 与本地引用中的一个不完全匹配,则是一个错误。
-
如果 <dst> 不匹配任何远程引用,或者
-
它必须以 "refs/" 开头;在这种情况下,<dst> 被用作目标字面。
-
<src> == <dst>,并且与 <src> 相匹配的引用必须不存在于远程引用集合中;本地匹配的 <src>引用被用作目的地的名称。
-
如果不使用 --force
选项,只有当 <目标i> 不存在,或者 <目标> 是 <源> 的适当子集(即祖先)时,<源> 引用才会被存储到远程引用中。 这种检查被称为 “快进检查”(fast-forward check),执行这种检查是为了避免意外覆盖远程引用并丢失其他人从那里提交的内容。
使用 --force
,所有裁判的快进检查都被禁用。
可以选择在 <ref> 参数前加上一个加号 + 号,以便仅在该引用上禁用快进检查。
GIT
属于 git[1] 文档