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
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.
Create a new repository at github.com. (this is your repository)
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
Rename the local repository's current 'origin' to 'upstream'.
git remote rename origin upstream
Give the local repository an 'origin' that points to your repository.
git remote add origin https://github.com/your-account/your-repository.git
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.
git checkout -b my-feature-branch
.git commit
as usual to your repository.git pull upstream master
to pull changes from the other repository to your master branch.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>
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.
I think that the "most polite way" to do so would be:
git checkout -b <your_branch_name>
(in case you didn't do that before) git remote add github <your_repository_ssh_url>
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.
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.
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