STANNIX Solutions for the Real World


Manual: git-http-push

GIT-HTTP-PUSH(1)				 Git Manual				    GIT-HTTP-PUSH(1)

NAME
       git-http-push - Push objects over HTTP/DAV to another repository

SYNOPSIS
       git http-push [--all] [--dry-run] [--force] [--verbose]   [...]

DESCRIPTION
       Sends missing objects to the remote repository, and updates the remote branch.

       NOTE: This command is temporarily disabled if your libcurl is older than 7.16, as the combination has
       been reported not to work and sometimes corrupts the repository.

OPTIONS
       --all
	   Do not assume that the remote repository is complete in its current state, and verify all objects
	   in the entire local ref’s history exist in the remote repository.

       --force
	   Usually, the command refuses to update a remote ref that is not an ancestor of the local ref used
	   to overwrite it. This flag disables the check. What this means is that the remote repository can
	   lose commits; use it with care.

       --dry-run
	   Do everything except actually send the updates.

       --verbose
	   Report the list of objects being walked locally and the list of objects successfully sent to the
	   remote repository.

       -d, -D
	   Remove  from remote repository. The specified branch cannot be the remote HEAD. If -d is
	   specified, the following other conditions must also be met:

	   •   Remote HEAD must resolve to an object that exists locally

	   •   Specified branch resolves to an object that exists locally

	   •   Specified branch is an ancestor of the remote HEAD

       ...
	   The remote refs to update.

SPECIFYING THE REFS
       A  specification can be either a single pattern, or a pair of such patterns separated by a colon
       ":" (this means that a ref name cannot have a colon in it). A single pattern  is just a
       shorthand for :.

       Each pattern pair : consists of the source side (before the colon) and the destination side
       (after the colon). The ref to be pushed is determined by finding a match that matches the source
       side, and where it is pushed is determined by using the destination side.

       •   It is an error if  does not match exactly one of the local refs.

       •   If  does not match any remote ref, either

	   •   it has to start with "refs/";  is used as the destination literally in this case.

	   •    ==  and the ref that matched the  must not exist in the set of remote refs;
	       the ref matched  locally is used as the name of the destination.

       Without ‘--force`, the  ref is stored at the remote only if  does not exist, or  is a
       proper subset (i.e. an ancestor) of . This check, known as "fast-forward check", is performed to
       avoid accidentally overwriting the remote ref and losing other peoples’ commits from there.

       With --force, the fast-forward check is disabled for all refs.

       Optionally, a  parameter can be prefixed with a plus + sign to disable the fast-forward check
       only on that ref.

GIT
       Part of the git(1) suite

Git 2.53.0					 03/02/2026				    GIT-HTTP-PUSH(1)