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