Search code examples
gitgithubversion-controlgit-fork

How do you fork your own repository on GitHub?


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.


Solution

  • 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"

    https://help.github.com/assets/images/help/importer/import-repository.png

    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.