How do I rename branch on the GitHub website?
Asked Answered
N

7

56

I don't know how to run command line stuff. I just don’t have the environment.

So I'm trying to rename a branch on the GitHub website. It was, by default, named patch-1.

Is it possible to rename it on the site?

Notable answered 24/5, 2014 at 23:26 Comment(4)
No, not really. And you'll be limited on Github with other features such as merging conflicts without a command-line or graphical VCS environment.Clobber
Just push it back up with a different name, and delete the original ?Anomalistic
I was thinking of doing that but i asked here and it seems we cannot truly delete a branch: #23850990Notable
Since Jan. 2021, this is officially supported. See my answer belowTranquilize
L
26

I think you can, just create a new branch with the new name, and delete the old one on github.

More detail you can see here.

Linkous answered 18/10, 2014 at 14:33 Comment(5)
That wasn't really the question, was it?Sarajane
@Sarajane It kind of is tho. You create a new branch from the one you'd like to change.Moralize
It's not a useful answer if, for instance, the branch has an open PR and you'd like to preserve the discussion left on that PR.Waterrepellent
You can now change the target branch in an open PR. So I'd say this is an option anyway.Padron
And will still lead to every link to the branch code in any github issues/comments etc to be broken, so no, this is not the answer. It's a workaround, but the real answer is "you can't, github does not support renaming branches, but you can [and then this answer] instead".Enneastyle
I
30

I just did it without downloading any code to my laptop and using only the GitHub site. The solution looks the same as @swcool’s, but I want to add about the default branch.
In my case, the name of the renaming branch did not exist.

  1. Change the default branch (to the old branch you want to rename)

  2. Create a new branch (with a new name)

    This action will copy all the contents of the default branch (the branch with the old name) to the new branch (with a new name). At this time, you have two branches with the same code.

  3. Change the default branch (to the new one with a new name)

  4. Delete the old branch

Interregnum answered 25/10, 2014 at 15:22 Comment(2)
In step 3, isn't it a better idea to just change the default branch back to master? Or am I missing something?Sheep
@edjroot - it depends on which branch you're renaming. If, for example, you want to rename the master branch to main, then you'll need to change the default branch to main. Admittedly, that wasn't asked in the question, but it's a useful detail to note for anyone reading about renaming and changing branches.Prandial
L
26

I think you can, just create a new branch with the new name, and delete the old one on github.

More detail you can see here.

Linkous answered 18/10, 2014 at 14:33 Comment(5)
That wasn't really the question, was it?Sarajane
@Sarajane It kind of is tho. You create a new branch from the one you'd like to change.Moralize
It's not a useful answer if, for instance, the branch has an open PR and you'd like to preserve the discussion left on that PR.Waterrepellent
You can now change the target branch in an open PR. So I'd say this is an option anyway.Padron
And will still lead to every link to the branch code in any github issues/comments etc to be broken, so no, this is not the answer. It's a workaround, but the real answer is "you can't, github does not support renaming branches, but you can [and then this answer] instead".Enneastyle
F
16

It is not possible to rename a branch from the Github website. You will need to do the following -

Setup your Git Environment

Follow this - https://help.github.com/articles/set-up-git

Rename branch locally & on Github

git branch -m old_branch new_branch # Rename branch locally
git push origin :old_branch # Delete the old branch
git push --set-upstream origin new_branch # Push the new branch, set local branch to track the new remote

Fallonfallout answered 24/5, 2014 at 23:34 Comment(3)
I have GitBash I'm trying to use that, is it possible to do that with Bash?Notable
downvoted for second link's linkrot. especially when it's a 3rd party site, please include all steps.Rudman
fixed & added stepsFallonfallout
T
8

If you don't want to install Git, clone the repo, rename the branch locally and push it back to GitHub, you can use the GitHub API for references:

  • create a new branch where the old one is:

    POST /repos/:owner/:repo/git/refs
    
    {
      "ref": "refs/heads/newBranchName",
      "sha": "<SHA1 of old branch>"
    }
    
  • delete the old branch:

    DELETE /repos/:owner/:repo/git/refs/heads/oldBranchName
    

That way, you will have "renamed" (create+delete) the branch without having git locally.

And, as commented by user3533716 below, use the GitHub API for listing branches to get those branch SHA1:

GET /repos/:owner/:repo/branches
Tranquilize answered 25/5, 2014 at 8:57 Comment(7)
SHA1 of what? old branch name?Kho
Can't copy master, says 404 Not Found: lh5.googleusercontent.com/-9WxBOLc--yk/VCIBf46NGhI/AAAAAAAATTI/…Kho
@Kho yes, SHA1 of the old branch: git rev-parse <old branch name>Tranquilize
@Kho you would need to be authenticated for this POST to succeed. No authentication means 404 ("not found"). See gist.github.com/caspyin/2288960Tranquilize
OP wants to rename the branch "from the web site". API usage is far beyond that requirement.Owain
To list branches, and get the SHA1, use:GET /repos/:owner/:repo/branchesKozloski
@Kozloski Thank you. I have included your comment in the answer for more visibility.Tranquilize
T
7

Since Jan., 19th 2021, you now can rename a branch directly on github.com:

Support for renaming an existing branch:

You can now rename any branch, including the default branch, from the web.

Branch rename dialog -- https://static.mcmap.net/file/mcmap/ZG-AbGLDKwfpLi21bC2jaRA/user-images.githubusercontent.com/2503052/105069955-a231fa80-5a50-11eb-982c-a114c9c44c57.png?ssl=1

If you've been waiting to rename your default branch from master to main, we now recommend doing so using this feature.

When a branch is renamed:

  • Open pull requests and draft releases targeting the renamed branch will be retargeted automatically
  • Branch protection rules that explicitly reference the renamed branch will be updated

Note: admin permissions are required to rename the default branch, but write permissions are sufficient to rename other branches.

To help make the change as seamless as possible for users:

  • We'll show a notice to contributors, maintainers, and admins on the repository homepage with instructions for updating their local repository
  • Web requests to the old branch will be redirected
  • A "moved permanently" HTTP response will be returned to REST API calls
  • An informational message will be displayed to Git command line users that push to the old branch

This change is one of many changes GitHub is making to support projects and maintainers that want to rename their default branch.

Branch names will not change unless the maintainer explicitly makes the change, however this new rename functionality should dramatically reduce the disruption to projects who do want to change branch names.

To learn more about the change we've made, see github/renaming.

To learn more, see Renaming a branch.

Tranquilize answered 19/1, 2021 at 20:52 Comment(0)
P
3

To rename a branch on the Github website, just go to your repo's home page, click on where it says "branches"

enter image description here

Then, find the branch you're interested in, click the pencil button

enter image description here

and from there, you can rename your branch. enter image description here

Parrisch answered 3/5, 2022 at 19:34 Comment(0)
G
-2

If you want a GUI based solution - download the Git Client "GitKraken". It supports doing this from UI by right-clicking on the branch name and choosing "rename [branch name]".

Gastronome answered 15/1, 2020 at 7:25 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.