git-http-push
Update remote git repository via HTTP protocol
SYNOPSIS
git-http-push [--all] [--verbose] [--atomic]
PARAMETERS
--all
Push all refs under refs/.
--verbose
Enable verbose output.
--atomic
Request an atomic transaction on the remote side. Either all refs are updated, or none are.
The URL of the remote repository.
A list of refs to push, in the form src:dst.
DESCRIPTION
git-http-push is a helper command used by git push to transfer objects to another repository over HTTP(S).
It is not intended to be invoked directly by users. Instead, git push automatically utilizes it when pushing to an HTTP(S) URL.
This command takes a list of objects to send and their associated refs, and sends them to the remote repository using a series of HTTP requests. It handles object packing, negotiation with the remote, and error handling. The communication includes authenticating with the remote, checking access permissions to refs, creating missing refs or updating existing refs.
CAVEATS
This command is an internal plumbing command. End users typically interact with git push instead.
AUTHENTICATION
Authentication to the remote HTTP server is handled using the standard Git credential helper mechanism. This allows for flexible authentication methods, including basic authentication, digest authentication, and more advanced schemes.
REMOTE REQUIREMENTS
The remote HTTP server must support the Git HTTP protocol extension. This includes support for receiving packed objects, creating and updating refs, and handling the necessary HTTP requests for Git operations.
HISTORY
The git-http-push command was developed as part of the initial Git implementation to enable pushing changes to remote repositories over HTTP(S). Its usage has evolved in tandem with the development of Git and the growing importance of the HTTP protocol for repository access.
SEE ALSO
git-push(1), git-fetch(1), git-remote(1)