How can I fork my own GitHub repository?

前端 未结 7 2267
南笙
南笙 2020-11-30 06:19

So, total newbie to Git. Been reading through the guides and think I have the basics but am having difficulties accomplishing this one goal.

I have a repo created fo

相关标签:
7条回答
  • 2020-11-30 06:52

    This tutorial gives a simple and straightforward answer :

    1. Create a new empty github forkedreporepository
    2. Clone it locally:

      git clone https://github.com/YOURUSERNAME/forkedrepo.git
      
    3. Add the original github repository as remote of the new local repository:

      git remote add upstream https://github.com/YOURUSERNAME/originalrepo.git
      
    4. Pull down a copy of the original github repository to your new local repository:

      git pull upstream master
      
    5. Push the files from your new local repository to new github repository:

      git push origin master
      

    This won't be recognized by github as a fork of the original repository, off course, but this is as good as it gets.

    0 讨论(0)
  • 2020-11-30 07:02

    Surprised no-one has referenced this guy's blog post yet.

    Here's the relevant steps:

    $ git clone git@github.com:YOURNAME/foo.git bar
    $ cd bar
    $ vim .git/config
    [remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = git@github.com:YOURNAME/bar.git #replace foo with bar
    $ git remote add upstream git@github.com:YOURNAME/foo.git
    $ git push -u origin master
    

    Instead of editing the config, I usually use a combination of git remote remove and git remote add.

    You could also use git remote rename followed by git remote add if you wanted to keep the upstream origin around.

    0 讨论(0)
  • 2020-11-30 07:08

    to make true GitHub fork of own repository you can use this steps:

    1. Create an organization
    2. Fork to organization
    3. Rename forked project
    4. Move back to your account
    0 讨论(0)
  • 2020-11-30 07:09

    It will probably be a lot easier to use branches, rather than using separate forks. You can still have separate checkouts for each branch; just clone your repo multiple times, and use git checkout in each one to switch it to the appropriate branch (or git checkout -b to create the branch and check it out all at once). Once you have created the branches, you can push them to GitHub using git push origin <branchname>.

    0 讨论(0)
  • 2020-11-30 07:09

    You're doing the right thing.

    cd ~/Sites/
    git clone ~/Dev/markupDNA/ project-N
    cd project-N
    git remote rename origin markupDNA
    
    • Nav to the folder where you store your projects
    • clone your base markupDNA repo with custom name
    • rename the remote so that if you want to an 'origin' later, you can
    0 讨论(0)
  • 2020-11-30 07:14

    Sure you can clone from a clone. In git there is no concept of a main repo. People often designate a main repo, but that is by convention, not because of a technical reason.

    So you can do everything exactly as you describe and even more.

    For example it makes sense to keep a branch in your breakout sites with ideas for additions or modifications to your generic stuff. You can pull these up towards your generic repo and distribute again from there.

    0 讨论(0)
提交回复
热议问题