## 名称

git-http-push - 通过 HTTP / DAV 将对象推送到另一个存储库

## 概要

    git http-push [--all] [--dry-run] [--force] [--verbose] <url> <ref> [<ref>…]

## 描述

将缺失的对象发送到远程存储库，并更新远程分支。

注意：如果您的 libcurl 早于7.16，则此命令将暂时禁用，因为组合报告不起作用，有时会损坏存储库。

## 选项

--all

不要认为远程存储库在当前状态下是完整的，并且验证整个本地ref的历史中的所有对象都存在于远程存储库中。

--force

通常，该命令拒绝更新远程 ref，该远程 ref 不是用于覆盖它的本地 ref 的祖先。此标志禁用检查。这意味着远程仓库可能会失去提交； 小心使用它。

--dry-run

除了实际发送更新之外，请做其他事

--verbose

报告本地行走的对象列表以及成功发送到远程存储库的对象列表。

-d -D

从远程存储库中删除<ref>。指定的分支不能是远程 HEAD。如果指定-d，则还必须满足以下其他条件：

- 远程 HEAD 必须解析为本地存在的对象

- 指定的分支解析为本地存在的对象

- 指定的分支是远程 HEAD 的祖先

<ref>…

远程参考更新。

## 指定参考

`<ref>`规范可以是一个单一的图案，或一对用冒号分开这样的图案的“：”（这意味着一个裁判名不能在它一个冒号）。一个模式`<name>`只是一个`<name>:<name>`简写。

每个模式对由源端（冒号前）和目标端（冒号后）组成。要推送的引用是通过找到匹配源端的匹配来确定的，并且推送的位置由目标端确定。

- 如果<src>不完全匹配一个本地引用，那是错误的。

- 如果<dst>与任何远程参考不匹配

    -  it has to start with "refs/"; <dst> is used as the destination literally in this case.

    -  <src> == <dst> and the ref that matched the <src> must not exist in the set of remote refs; the ref matched <src> locally is used as the name of the destination.

如果没有`--force`，<src> ref 仅在<dst>不存在的情况下存储在远程，或者<dst>是<src>的真子集（即祖先）。此检查称为“快进检查”，以避免意外覆盖远程参考并丢失其他人的提交。

和`--force`，所有裁判都禁用快进检查。

可选地，一个<ref>参数可以带有加`+`号前缀以禁用仅在该 ref 上的快进检查。