The Git Push command uploads content from a local repository to a central repository. Because this command overwrites changes, it should only be executed with an empty branch as the target.

$1 Domain Names

Register great TLDs for less than $1 for the first year.

Why wait? Grab your favorite domain name today!

Matching email
SSL certificate
24/7/365 support

What is Git Push?

With Git you have the possibility to work on a project in peace and without any risk, while at the same time your team members also continue their respective tasks. The use of individual repositories makes it possible. However, when you have completed your changes and want to integrate them into the entire project, the Git Command Git Push helps you to do this. Using this command, you upload content from your local repository to the remote repository, which in turn is accessible to the other developers. Git Push is a very important tool for the success of your project.

The command works as a counterpart to Git Fetch and Git Pull respectively. While these two commands allow you to pull content from a remote repository to your local repository, Git Push goes the other way. Through these commands, many operations take place simultaneously - in this way, Git differs from SVN. Once your changes are complete, you then simply upload them to the remote repository. It is important to note that Git Push overwrites other changes. The command should be used with care accordingly.

Syntax and functionality of Git Push

Now to explain the syntax of Git Push. First you write the command itself, then you specify the remote repository and after that the local branch you want to upload it to. This looks like this when written out:

git push <remote-repository> <local-branch></local-branch></remote-repository>

Git then creates a local branch in the target repository and uploads all content, commits, and internal objects. However, as a protective feature, the version control system blocks the Git Push if the upload cannot be performed in a fast-forward merge. This prevents commits from being accidentally overwritten by the command.

Examples of Git Push

In the following example, we will show you what a Git Push looks like in practice. For this we assume that you have made changes in your local repository, tested them extensively and found them to be good. The next step is to have these changes ready for the remote repository so that the other members of your team can access them as well. To do this, we now use various commands that you always have at hand in the handy Git Cheat Sheet for PDF download.

git checkout main
git fetch origin main
git rebase -I origin/main
# Squash commits, fix up commit messages etc.
git push origin main

Using the command Git Checkout, we’ll switch to the main branch. With Git Fetch we make sure that the local repository matches the state of the central repository. The Git Rebase command merges the state of the central repository with that of your local repository. This makes it possible to perform a fast-forward merge later, since the base of the central and local repos are the same. Then you perform the actual Git Push, which pushes your current state, including all changes, to the central repository.

Further uses for the command

In addition to the default command explained above, there are several other possibilities to use Git Push well.

Upload all branches

git push <remote-repository> --all</remote-repository>

This command is similar to the default, but instead of uploading a selected branch, it uploads all local branches directly to the central repository. This way, you do not have to do this work piece by piece.

Upload Tags

git push <remote-repository> --tags</remote-repository>

With this option you send all local tags to the remote repository. Tags are not included in an ordinary Git push.

Force Git Push

git push <remote-repository> --force</remote-repository>

This command corresponds to the standard version, but also performs the Git push if no fast-forward merge is possible. Since this increases the risk that you might overwrite changes and cause problems, you should avoid using this variant if possible.

Git Push in an empty Repository

To ensure that larger projects are not corrupted by Git Push, it is recommended to push only to empty repositories. You create these with the “—bare” option. When you push to empty repos, the changes and progress of other developers, as well as the structure of the remote repository, remain unaffected.

Delete branches with Git Push

You can also use Git Push to delete a branch locally and remotely. The corresponding command looks like this:

git branch -d alter_branch
git push origin :alter_branch

To delete the alter_branch branch from the remote repository.


Deploy websites and apps online in just three steps! With Deploy Now from IONOS, you’ll benefit from a fast setup and maximum scalability! Book now and try Deploy Now free for a month.

We use cookies on our website to provide you with the best possible user experience. By continuing to use our website or services, you agree to their use. More Information.
Page top