'Pushing to a different git repo

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.



Solution 1:[1]

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

Solution 2:[2]

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>

Solution 3:[3]

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

Solution 4:[4]

Note that if your current repo's branch that you want to push is called master and the remote repo branch where you push is called main, you should do git push different-repo master:main

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 math2001
Solution 2
Solution 3 Mahima
Solution 4 Ilir