I can't delete a remote master branch on git
GitGithubGit Problem Overview
I need to delete a master branch, but it's proving to be hard. I just want to clean that branch out and start new. I am deleting from the dev branch. I want master on GitHub to be clean.
# git push origin --delete master
> To https://github.com/mymasterb.git ! [remote rejected] master
> (deletion of the current branch prohibited) error: failed to push some
> refs to 'https://github.com/mymaster.git'
How do I quite simply start my master with a fresh slate?
Git Solutions
Solution 1 - Git
As explained in "Deleting your master branch" by Matthew Brett, you need to change your GitHub repo default branch.
> You need to go to the GitHub page for your forked repository, and click on the “Settings” button.
> Click on the "Branches" tab on the left hand side. There’s a “Default branch” dropdown list near the top of the screen.
> From there, select placeholder (where placeholder is the dummy name for your new default branch).
>Confirm that you want to change your default branch.
> Now you can do (from the command line):
git push origin :master
Or, since 2012, you can delete that same branch directly on GitHub:
That was announced in Sept. 2013, a year after I initially wrote that answer.
> For small changes like documentation fixes, typos, or if you’re just a walking software compiler, you can get a lot done in your browser without needing to clone the entire repository to your computer.
Note: for BitBucket, Tum reports in the comments:
> About the same for Bitbucket
> Repo -> Settings -> Repository details -> Main branch
Solution 2 - Git
To answer the question literally (since GitHub is not in the question title), also be aware of this post over on superuser. EDIT: Answer copied here in relevant part, slightly modified for clarity in square brackets:
> You're getting rejected because you're trying to delete the branch that your origin has currently "checked out".
>
>If you have direct access to the repo, you can just open up a shell [in the bare repo] directory and use good old git branch
to see what branch origin is currently on. To change it to another branch, you have to use git symbolic-ref HEAD refs/heads/another-branch
.
Solution 3 - Git
The quickest way is to switch default branch from master to another and you can remove master branch from the web interface.