You can do so by passing the remote branch name immediately after the local branch name, separated by a colon. Sometimes you may want to push your local branch to a remote branch with a different name. So while prefer being explicit by running git push origin HEAD, you can often simply run git push. We see from the output Git pushed our current branch to the origin remote. This will automatically set the tracking branch to the one I'm pushing too.įurthermore, if you don't specify a remote name, git push will use origin by default. So, we'll use the suggested command, or we could also use the -u option for git push.
It provides a command we can run to set what's called the tracking branch. This command fails because Git can't match the local branch name with origin. Let's try this by just running: git push origin While it's nice to be consistent, we really haven't shortened the command.Įven if we don't pass the branch name to git push, Git will attempt to use the current branch.īy default, so long as this branch name matches a branch name on the remote, this will work. So, we can use HEAD as a way to keep the git push command consistent across different branches. We can demonstrate this by running git log -online -decorate to see that HEAD and our branch reference the same commit. If we think about our common use case, we're usually pushing the latest work on our branch.Īs we learned in Part 3, HEAD also references the top most commit on a branch. It be nice if we could just type the same command for each branch. If we have to pass git push the name of the branch, this means we'll need to type a different git push command for each branch. Let's take a closer look at these arguments to understand how we might be able to use some shorthands. In init: git push we covered the most common usage of git push by passing the remote name followed by the branch name. If they depend on a specific "origin/master" branch, you might have to change their settings, too.In this video we'll learn some short hands and additional scenarios for git push. One thing to keep in mind, though, is your toolchain: if you're using a CI/CD tool, GitHub Actions, Azure DevOps / Atlassian Bamboo / GitLab CI pipelines or anything like this, you should check these tools thoroughly. In case you're using the Tower Git client, your colleagues can simply rename their local "master" branch and then change the tracking connection in the contextual menu: Things to Keep in MindĪs you've seen, the process of renaming "master" to "main" isn't terribly complicated. # Create a new tracking connection with the new "origin/main" branch: # Remove the existing tracking connection with "origin/master": # Get the latest commits (and branches!) from the remote: If other people on your team have local clones of the repository, they will also have to perform some steps on their end: # Switch to the "master" branch: You will then be able to delete the old "master" branch on the remote. In case you are using the Tower Git client, you can rename branches very easily:Īfter creating the new "main" branch on the remote, you might then (depending on your Git hosting platform) have to change the "default" branch or remove any "protected" status for "master". If you try again now, deleting "master" from the remote repository should be successful: $ git push origin -delete master You'll need to resolve this before you can go on. Additionally, your old "master" might be set as "protected". ! master (refusing to delete the current branch: refs/heads/master)Įrror: failed to push some refs to like other code-hosting platforms, too, expects you to define a "default" branch - and deleting this is not allowed. In many cases, however, you will see an error message like the following one: To Let's go on and remove the old "master" branch on the remote: $ git push origin -delete masterĭepending on your exact setup, this might have worked and the renaming is successful. We now have a new branch on the remote named "main". Make sure your current local HEAD branch is still "main" when executing the following command: $ git push -u origin main Instead, we'll have to create a new "main" branch and then delete the old "master" branch. In the second step, we'll have to create a new branch on the remote named "main" - because Git does not allow to simply "rename" a remote branch. So far, so good! The local branch has been renamed - but we now need to make some changes on the remote repository as well! Renaming the Remote master Branch as Well Your branch is up to date with 'origin/master'. Let's quickly check if this has worked as expected: $ git status The first step is to rename the "master" branch in your local Git repositories: $ git branch -m master main