# Git Push

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.

## 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](https://www.ionos.com/digitalguide/websites/web-development/git-commands/ "Git Commands") 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](https://www.ionos.com/digitalguide/websites/web-development/git-pull/ "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](https://www.ionos.com/digitalguide/websites/web-development/svn-vs-git-comparing-version-control-systems/ "SVN vs Git – comparing version control systems"). 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:

```none
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](https://www.ionos.com/digitalguide/websites/web-development/git-cheat-sheet/).

```none
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](https://www.ionos.com/digitalguide/websites/web-development/git-checkout/ "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](https://www.ionos.com/digitalguide/websites/web-development/git-rebase/ "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

```none
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

```none
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

```none
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:

```none
git branch -d alter_branch
git push origin :alter_branch
```

To delete the alter\_branch branch from the remote repository.

---

### Tip

Deploy websites and apps online in just three steps! With [Deploy Now](https://www.ionos.com/hosting/deploy-now "Deploy Now from IONOS: Build and Deploy via GitHub") from IONOS, you’ll benefit from a fast setup and maximum scalability! Book now and try Deploy Now free for a month.

---


This is a markdown version of: [https://www.ionos.com/digitalguide/websites/web-development/git-push/](https://www.ionos.com/digitalguide/websites/web-development/git-push/) for AI/LLM consumption.