git push
Git push
Definition
Definition
The git push command uploads the content of the local repository to the remote repository. Pushing is the opposite of fetching. If git fetch imports the content to the local branches, git push exports it to the remote branches.
Git push usage
Git push usage
The git push command is commonly used to publish the upload local changes to the central repository. After the changes are made in the local repository, you can git push to share the modification with other members of the team. The git pushcommand is one of the commands that are involved in the “syncing” process. These commands work on the remote branches that are configured with the git remote command. The commits are uploaded with git push and download with git fetch and git pull. After making changes in both cases, git merge is used to integrate changes.
The following diagrams show the progression of the local master past the central repository’s master and publishing changes by invoking git push origin master.
Common options
Common options
类目 | 类目 |
---|---|
git push <remote> <branch> | Pushes the specified branch to <remote> with necessary commits creating a local branch in the destination repository. |
git push <remote> –force | Forces the push even if it results in a non-fast-forward merge. Be sure that nobody has pulled the commits before using the –force option. |
git push <remote> –all | Pushes all of the local branches to the remote repository. |
-git push <remote> –tags | Pushes the tags from the local branches to the remote repository. The –all won’t push the tags. |
How to push to bare repositories
How to push to bare repositories
It is very safe to push to repositories that are created with –bare flag since it doesn’t allow to edit files and commit changes to that repository. It is recommended to create central repositories as bare ones otherwise pushing to a non-bare repository can overwrite changes.
Force pushing
Force pushing
Git can refuse your push request if the history of the central repository does not match the local one. In these cases, you should pull the remote branch and merge it into the local repository then push again. The –force flag matches the remote repository’s branch and local one cleaning the upstream changes from the last pull. Use force push when the shared commits are not right and are fixed with git commit –amend or an interactive rebase. Before using the –force option, be sure that nobody has pulled the commits. The interactive rebase is also a good way to clean up the commits before sharing. The git commit –amend option updates the previous commit. When the commit is amended git pushwill fail because Git will accept the amended commit and the remote commit as diverged content. Here, –force must be used to push the amended commit.
# make changes to a repo and git add
git commit --amend
# update the existing commit message
git push --force origin master
How to delete a remote branch
How to delete a remote branch
Here is an example of deleting the remote branch. The branch_name prefixed with a colon to git push will delete the remote branch:
git branch -D branch_name
git push origin :branch_name
Use -u flag for the first push on a branch
Use -u flag for the first push on a branch
When you have a local branch and you want to push it to the remote repository for the first time, you should specify which branch of the remote repository you mean. In Git, the -u flag is used with the git push command to set the upstream branch for the current branch. When you use the -u flag, Git will create a link between your local branch and the remote branch. This link is useful for simplifying the git pull and git push commands in the future, as it allows Git to remember which remote branch corresponds to your local branch.
The -u flag is short for –set-upstream. When you use this flag, you’ll typically see it used like this:
git push -u origin your-branch-name
Examples of some mostly used flags:
Examples of some mostly used flags:
Here are some examples of how to use some of the git push flags:
-f flag:
git push -f origin master
This will force push the local master branch to the origin remote repository, overwriting any changes that may have been made to the master branch in the remote repository. Use this flag with caution, as it can cause problems if multiple people are working on the same branch.
–tags flag:
git push --tags origin
This will push all tags to the origin remote repository. Tags are used to label important points in your project’s history, such as releases or milestones.
–all flag:
git push --all origin
This will push all local branches to the origin remote repository.
–dry-run flag:
git push --dry-run origin master
This will simulate a push to the master branch of the origin remote repository, without actually pushing anything. This can be useful for testing and checking what changes will be pushed before actually pushing them.
–force-with-lease flag:
git push --force-with-lease origin master
This will force push the local master branch to the origin remote repository, while ensuring that you don’t overwrite changes that may have been made to the master branch in the remote repository since your last pull. This is a safer alternative to using the -f flag.