Name

push

Synopsis

git push [--all] [--tags] [repository [localref][:remoteref]]

Push changes from one or more branches or tags into the specified remote repository.

Repository can be a local repository path, a repository URL (see git clone), or a remote name (see git remote). If repository is omitted, it defaults to origin.

If localref is omitted, it defaults to pushing all the refs that currently exist on the remote. For example, if you have local branches named A, B, C, and D, and the remote has branches named A, C, and E, then Git will push branches A and C unless you specify a specific localref.

As an alternative to providing localref, you can provide --all or --tags. With --all, Git pushes all the local branches. With --tags, Git pushes all the local tags.

If remoteref is omitted, it defaults to the same name as localref. If you supply remoteref, it needs to be the full refname, such as refs/heads/master, not just the base branch name.

If you supply a remoteref without a localref, Git deletes remoteref in the remote repository. This is useful if the remote end refuses to update a ref because it is not a fast forward; you can delete the remote ref, and then re-create it.

Options

--all
--tags
--dry-run
--thin

Examples

To push the current branch (master) to the remote named origin:

$ git push origin master

To push all local branches to the default remote (origin), as long as they already exist there:

$ git push

To push all the local branches to a particular remote repository:

$ git push --all server:/git/myrepo.git ...

Get Linux in a Nutshell, 6th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.