Skip to content

git-http-push

通过 HTTP/DAV 将对象推送到另一个仓库

概要

'git http-push' [--all] [--dry-run] [--force] [--verbose] <URL> <ref> [<ref>...]

描述

将缺失的对象发送到远程仓库,并更新远程分支。

注意:如果您的 libcurl 早于 7.16,此命令暂时被禁用,因为已报告该组合无法工作且有时会损坏仓库。

选项

  • --all - 不假设远程仓库在其当前状态下是完整的,并验证整个本地引用历史中的所有对象都存在于远程仓库中。
  • --force - 通常,命令拒绝更新不是用于覆盖它的本地引用的祖先的远程引用。此标志禁用该检查。这意味着远程仓库可能会丢失提交;请谨慎使用。
  • --dry-run - 执行除实际发送更新之外的所有操作。
  • --verbose - 报告本地遍历的对象列表和成功发送到远程仓库的对象列表。
  • -d, -D - 从远程仓库删除 <ref>。指定的分支不能是远程 HEAD。如果指定 -d,还必须满足以下条件:
    • 远程 HEAD 必须解析为本地存在的对象
    • 指定的分支解析为本地存在的对象
    • 指定的分支是远程 HEAD 的祖先
  • <ref>... - 要更新的远程引用。

指定引用

'<ref>' 规范可以是单个模式,也可以是用冒号 ":" 分隔的一对模式(这意味着引用名称中不能有冒号)。单个模式 '<name>' 只是 '<name>:<name>' 的简写。

每对模式 '<src>:<dst>' 由源端(冒号前)和目标端(冒号后)组成。要推送的引用通过找到匹配源端的匹配来确定,推送到哪里通过使用目标端来确定。

  • 如果 '<src>' 不完全匹配本地引用之一,则是错误。
  • 如果 '<dst>' 不匹配任何远程引用,则:
    • 它必须以 "refs/" 开头;在这种情况下 <dst> 被字面用作目标。
    • <src> == <dst> 且匹配 <src> 的引用不得存在于远程引用集中;本地匹配 <src> 的引用用作目标的名称。

没有 --force 时,<src> 引用仅在 <dst> 不存在或 <dst> 是 <src> 的适当子集(即祖先)时才存储在远程。此检查称为"快进检查",用于避免意外覆盖远程引用并丢失其他人的提交。

使用 --force 时,对所有引用禁用快进检查。

可选地,<ref> 参数可以前缀加号 '+' 以仅对该引用禁用快进检查。

Git

git(1) 套件的一部分

基于 CC BY-NC-SA 3.0 许可发布