Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pushing to a different git repo

Tags:

git

github

I have a repo called react. I cloned it into a different repo locally called different-repo.

How can I then get different-repo to push remotely to different-repo because currently it is pushing to react.

Effectively I want to clone many times from react into different named repos but then when i push from those repos they push to their own repo.

like image 290
The worm Avatar asked Feb 07 '17 07:02

The worm


People also ask

Can I push to any github repo?

No, but if the repository is public others can fork it, commit to their own fork. They can then ask you to pull some of the changes in their fork into your repository via a pull-request. Show activity on this post. Nobody can push directly to your repository if you are not already granting them write access.


3 Answers

You have to add an other remote. Usually, you have an origin remotes, which points to the github (maybe bitbucket) repository you cloned it from. Here's a few example of what it is:

  • https://github.com/some-user/some-repo (the .git is optional)
  • [email protected]:some-user/some-repo (this is ssh, it allows you to push/pull without having to type your ids every single time)
  • C:/some/folder/on/your/computer Yes! You can push to an other directory on your own computer.

So, when you

$ git push origin master

origin is replaced with it's value: the url

So, it's basically just a shortcut. You could type the url yourself each time, it'd do the same!

Note: you can list all your remotes by doing git remote -v.

For your problem

How can I then get different-repo to push remotely to different-repo because currently it is pushing to react.

I'm guessing you want to create a second repository, right? Well, you can create an other remote (or replace the current origin) with the url to this repo!

Add an other remote — recommended

git remote add <remote-name> <url>

So, for example:

$ git remote add different-repo https://github.com/your-username/your-repo

And then, just

$ git push different-repo master

Change the origin remote

git remote set-url <remote-name> <url>

So

git remote set-url origin https://github.com/your-username/your-repo
like image 197
math2001 Avatar answered Oct 06 '22 04:10

math2001


Here different-repo is the first repo from which you created/cloned the child repo react

So by default child repo react will have its default remote as different-repo where you can push/pull changes.

Here child repo will maintain all the commit history of parent repo within its .git folder

If you want to push the changes to different repo from this react repo then add another remote(you can add as many as remotes here and also can delete the old remotes)

Add new Remote to react

git remote add <remote-name> <url>

If you want to remove the old remote

git remote remove <remote_name>
like image 45
Shivkumar kondi Avatar answered Oct 06 '22 03:10

Shivkumar kondi


Git push to new repo from existing repo’s branch

This blog is to the point and explains it very well. Here is the snippet from the blog.

Go to current project: 
$ cd my-project

Add new origin (origin2): git remote add origin2 <git_url>
$ git remote add origin2 https://github.com/my-org/new-project

The following command pushes master branch of current repo to master branch of new repo with remote configured as origin2.
$ git push <remote_name> <remote_repo_branch>
$ git push origin2 master

The following command pushes specific branch (say dev) of current repo to master branch of new repo with remote configured as origin2.
$ git push origin2 <source_branch>:<destination_branch>
$ git push origin2 dev:master
Use --force (to forcefully push into that new branch if required)
$ git push origin2 <source_branch>:<destination_branch> --force
like image 31
Mahima Avatar answered Oct 06 '22 03:10

Mahima