Cloning a repo from someone else's Github and pushing it to a repo on my Github

前端 未结 8 1046
小鲜肉
小鲜肉 2021-01-29 17:18

I cloned the repo at https://github.com/railstutorial/sample_app_rails_4 and made a lot of changes to it (I used it as a starting point for my own app), and now I would like to

相关标签:
8条回答
  • 2021-01-29 17:41

    GitHub: git clone someone else's repository & git push to your own repository

    I'm going to refer to someone else's repository as the other repository.


    1. Create a new repository at github.com. (this is your repository)

      • Give it the same name as the other repository.
      • Don't initialize it with a README, .gitignore, or license.
    2. Clone the other repository to your local machine. (if you haven't done so already)

      • git clone https://github.com/other-account/other-repository.git
    3. Rename the local repository's current 'origin' to 'upstream'.

      • git remote rename origin upstream
    4. Give the local repository an 'origin' that points to your repository.

      • git remote add origin https://github.com/your-account/your-repository.git
    5. Push the local repository to your repository on github.

      • git push origin master

    Now 'origin' points to your repository & 'upstream' points to the other repository.

    • Create a new branch for your changes with git checkout -b my-feature-branch.
    • You can git commit as usual to your repository.
    • Use git pull upstream master to pull changes from the other repository to your master branch.
    0 讨论(0)
  • 2021-01-29 17:44

    You can do this by creating a new remote from your local repository (via commandline).

    git remote add <name> <url>
    

    then you can call:

    git push <name> <repo_name>
    

    To replace the default "origin" remote that is set up you can run the following:

    git remote rm origin
    git remote add origin <url>
    
    0 讨论(0)
  • 2021-01-29 17:45

    After cloning, copy the files from their folder into a new one and start afresh with git init,

    I had a similar problem like that I had to change the folder directory before I could stage the changes to my repo.

    or you can remove current repository origin by the command git remote remove origin.

    0 讨论(0)
  • 2021-01-29 17:47

    I think that the "most polite way" to do so would be:

    1. Fork the original repo on your GitHub account
    2. Checkout a new branch for your changes git checkout -b <your_branch_name> (in case you didn't do that before)
    3. Add a new remote for your local repository: git remote add github <your_repository_ssh_url>
    4. Push your beautiful new branch to your github repository: git push github <your_branch_name>

    In this way you will have a repo forked to the original one, with your changes commited in a separate branch. This way will be easier in case you want to submit a pull request to the original repo.

    0 讨论(0)
  • 2021-01-29 17:48

    As Deefour says, your situation isn't much unlike the one in Change the URI (URL) for a remote Git repository. When you clone a repository, it is added as a remote of yours, under the name origin. What you need to do now (as you're not using the old source anymore) is change origin's URL:

    $ git remote set-url origin http://github.com/YOU/YOUR_REPO
    

    If the original repository would update often and you want to get those updates from time to time, then instead of editing origin it would be best to add a new remote:

    $ git remote add personal http://github.com/YOU/YOUR_REPO
    

    Or maybe even call the old one upstream:

    $ git remote rename origin upstream
    $ git remote add origin http://github.com/YOU/YOUR_REPO
    

    Then, whenever you want to get changes from upstream, you can do:

    $ git fetch upstream
    

    As this the source is a sample repository (seems to be kind of a template to start off), I don't think there's a need to keep it nor fork it at all - I'll go with the first alternative here.

    0 讨论(0)
  • 2021-01-29 17:50

    I had a similar situation, but in my case what I just needed to do was, as suggested, but with https, like this:

    $ git remote set-url origin https://github.com/YOU/YOUR_REPO

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