I have a public repository on GitHub. I want to replicate/copy it and work on a new project based on this repository, but I don't want to affect how it is now. I tried forking it using the GitHub UI but it didn't do anything.
I don't think you can fork your own repo.
Clone it and push it to a new repo is good but you need to:
git clone https://github.com/userName/Repo New_Repo
cd New_Repo
git remote set-url origin https://github.com/userName/New_Repo
git remote add upstream https://github.com/userName/Repo
git push origin master
git push --all
(see git push)
See the all process described at "Fork your own project on GitHub".
Six years later (2016), you now have the GitHub importer which allows you to import a repo from another source... including GitHub.
See "Importing a repository with GitHub Importer"
narf's answer (upvoted) also illustrate that process.
That will allow you to create a new repository and import the full history of the old one into the new one, using its GitHub url.
Again: what you get is a copy, not a real fork: you cannot make pull request from the new repo to the old one.
Again (bis), as stated in the comments by mpersico, this is not a TRUE FORK.
If I have a foo which is the canonical source repo for an open source project that I want other people to fork and have access to do PR, then I do not want to work in that repo, I want a fork I can use to issue proper PRs against my project.
I have solved this my creating a second account in GitHub and forking to that.
A super easy way to do it in 30 seconds from the GitHub website:
- Copy your repo's URL. Ex:
https://github.com/YourName/YourOldRepo(hint: it's the URL when you look at your repo's main page on github. - Click the
+icon in the top right corner.
- Select "Import repository".
- Where it asks for the "Old URL", paste the URL you copied at step #1

- Enter the name of your new repo and click
Begin Import. - That's it! You now have a copy of the full repo, with all commit history and branches!
Limitations: It's not actually a real fork. It's a copy of the repo. It won't allow to do pull requests back and forth.
- git clone https://github.com/YOURREPO.git TargetRepoName
- cd TargetRepoName/
- git remote set-url origin https://github.com/TargetRepoName.git
- git push -u origin master
Just clone it, create new blank repo, and push to it.
Simplest way to achieve the desired effect is to create a new repository, then select the import option and supply the URL to the repo you wish to fork.
Images below will help:
I followed these official instructions for "Duplicating a repository" and it seemed to work.
https://help.github.com/articles/duplicating-a-repository/
To create a duplicate of a repository without forking, you need to run a special clone command against the original repository and mirror-push to the new one. This works with any git repository, not just ones hosted on GitHub.
The accepted solution of VonC, unfortunately, did not work for me as I got
remote: Repository not found
What did work was the following:
- Create a new_repo at github
- git clone new_repo
- cd new_repo
- git remote add upstream old_repo.git
- git pull upstream master
- git push origin master
I got all the above from here.
For non tech savvy using GitHub, here is one simple solution as an alternative to other great answers above. What you need is just a GitHub Desktop application.
- Open your own project repo from browser, and download as a zip, eg
your-project-master.zip. - Unzip and rename it as your new repo.
- Open GitHub Desktop, and add your new repo by browsing it to your unzipped local path new repo.

- Publish it to your github, by clicking the publish button. Don't forget to add the name and the description :)
Just tried this, and it worked:
- Fork your repo into an organization account
- Rename it
- Transfer ownership back to yourself
When you create a new repo, you can import from another repo with the repo .git url. It took me 30 seconde.
来源:https://stackoverflow.com/questions/10963878/how-do-you-fork-your-own-repository-on-github



