I wanted to rename one of my repositories on GitHub, but I got scared when a big red warning said:
- We will not set up any redirects from the old location
- You will need to update your local repositories to point to the new location
- Renaming may take a few minutes to complete
Does anyone have step-by-step instructions on how to accomplish #1 and #2 manually? Or what do I have to do locally?
This question is related to
git
github
repository
I rename my own just by simply :
After this step, GitHub will make sure that, your online repository matches your local folder name. At this step your problem is solved, unless you also want to rename your local folder. Then do it manually and just use the Github client for windows to refind again your repository into your hard drive, and Github will match it again. That's all! Very simple.
Note that since May 2013 ("Repository redirects are here!"), you can rename your GitHub repo without breaking any links:
We're happy to announce that starting today, we'll automatically redirect all requests for previous repository locations to their new home in these circumstances. There's nothing special you have to do. Just rename away and we'll take care of the rest.
As a special bonus, we'll also be servicing all Git clone, fetch, and push requests from previous repository locations.
That means you don't even have to git remote set-url
(change the url of your remote GitHub repo) on your local cloned repo!
Although Gabriel notes in the comments that the official GitHub help page strongly recommends that you do so:
to reduce confusion, we strongly recommend updating any existing local clones to point to the new repository URL. You can do this by using git remote on the command line:
git remote set-url origin new_url
Beware though:
GitHub Pages sites are not automatically redirected when their repositories are renamed at this time.
Renaming a Pages repository will continue to break any existing links to content hosted on thegithub.io
domain or custom domains.
Plus, the user still owns the namespace: if he/she creates a new repo using the old name of the renamed repo, that redirection (for said renamed repo) will stop working.
This answer is now obsolete! GitHub will forward to new locations now. See this answer for details.
The reason this warning is there is because #1 can't be made manually.
If you are the only person working on and linking to the repository, then you are fine with changing the remote in your local repo and in your webpages.
However, the reason to have a public repository on github in the first place is that you can have others cloning your repository and linking to your github project page.
The old url github.com/<username>/<repository>
is owned by github.
When they don't setup any redirects to the new url, nobody can.
So things will break for everybody except the persons you are telling.
How big of a problem that is, is up to you though. If you have an official project page on a different server, then the github url might not be much of a problem. If you advertised your project with the github url in mailing lists and directories, then you probably should not change the repo name.
An alternative to changing the repo name is to create a new repository and leave notes in the old one (also as commits in the repo) about how to reach your new repo.
If you wan't your new repo to be listed as a fork of your old repo you need to create a new github account. You can add your other account as a collaborator for both repositories.
I see a lot of positive feedback to responses I don't find accurate/complete at all.
There are two things to have in mind:
If you haven't cloned your repo in your machine yet, you just need to rename the Github repository and then proceed to clone the repo so you can have a local copy. In order to rename the Github repo, you just need to:
If you already have a local copy of the project, apart from following the steps above, you need to make sure your local repository (root folder) is renamed properly and it's pointing to the right remote url :) link. In order to achieve that, do the following:
mv -R current-repo-name new-repo-name
$ git remote set-url origin https://github.com/userX/repositoryU
or
$ git remote set-url origin [email protected]:userX/repositoryU.git
The second step is not mandatory, though. Github announced a while ago that they would redirect all requests from previous repository urls to the assigned ones. That means you don't need to use $ git remote set-url ...
, but they still encourage you to do so to avoid confusion.
Hope it helped. If you have any questions or the post is not clear enough, let me know.
If you are the only person working on the project, it's not a big problem, because you only have to do #2.
Let's say your username is someuser
and your project is called someproject
.
Then your project's URL will be1
[email protected]:someuser/someproject.git
If you rename your project, it will change the someproject
part of the URL, e.g.
[email protected]:someuser/newprojectname.git
(see footnote if your URL does not look like this).
Your working copy of Git uses this URL when you do a push
or pull
.
So after you rename your project, you will have to tell your working copy the new URL.
You can do that in two steps:
Firstly, cd
to your local Git directory, and find out what remote name(s) refer to that URL:
$ git remote -v
origin [email protected]:someuser/someproject.git
Then, set the new URL
$ git remote set-url origin [email protected]:someuser/newprojectname.git
Or in older versions of Git, you might need:
$ git remote rm origin
$ git remote add origin [email protected]:someuser/newprojectname.git
(origin
is the most common remote name, but it might be called something else.)
But if there are lots of people who are working on your project, they will all need to do the above steps, and maybe you don't even know how to contact them all to tell them. That's what #1 is about.
Further reading:
Footnotes:
1 The exact format of your URL depends on which protocol you are using, e.g.
I have tried to rename the repository on the web page:
setting
, click it and then you can find the Repositories
under the Personal setting
. Repositories
and enter your directories of Repositories, choose the Repository that you want to rename. setting
is added to the top line, just click it and enter the new name then click Rename
. Done, so easy.
1) Open your project url: https://github.com/someuser/project-name
2) in the top, aside of the project name, click EDIT
This solution is for those users who use GitHub desktop.
Rename your repository from setting on GitHub.com
Now from your desktop click on sync.
Done.
It is worth noting that if you fork a GitHub project and then rename the newly spawned copy, the new name appears in the members network graph of the parent project. The complementary relationship is preserved as well. This should address any reservations associated with the first point in the original question related to redirects, i.e. you can still get here from there, so to speak. I, too, was hesitant because of the irrevocability implied by the warning, so hopefully this will save others that delay.
open this url (https://github.com/) from your browser
Go to repositories at the Right end of the page
Open the link of repository that you want to rename
click Settings (you will find in the Navigation bar)
At the top you will find a box Called (Repository name) where you write the new name
Press Rename
Source: Stackoverflow.com