Prevent git to push to wrong remote
I have a local branch “gh” that I always want to push to my account on github; I also have another local branch “lab” that I always want to push to my organization’s account on github.
I have setup two remotes (gh and lab) for that.
$ git remote -v gh git@Ninguem.github.com:Ninguem/prj.git (fetch) gh git@Ninguem.github.com:Ninguem/prj.git (push) lab git@Ninguem.github.com:lab-rasparta-org/prj.git (fetch) lab git@Ninguem.github.com:lab-rasparta-org/prj.git (push)
I’m afraid to inadvertently mess the two when pushing. Is there a way to prevent that?
I’ve already fetched the two successfully, so I thing they’re somehow “linked” together correctly… how do I manage what branches are “linked” to what remote branches and is there a safety mechanism?
- Push git changes to a shared network drive
- “git remote -v” shows (fetch) and (push) twice, once for 'github' and once for 'origin' what does that mean?
- Deleting a local Git Branch that was never pushed - delete it on the server, too?
- GitKraken won't push to new remote (“Select remote branch to push/pull with 'master': ”)
- Reverse last push on Github.
- How to change GitHub accounts when trying to push from Git?
2 Solutions collect form web for “Prevent git to push to wrong remote”
I noticed you might be confusing the terms branch and remote:
A remote Remote repositories are versions of your project that are hosted on the Internet or network somewhere.
A branch let’s you create an isolated environment for making changes in a repository.
I believe you’re trying to avoid confusion between pushing to the wron remote.
So suppose you have a branch
my_branch in your personal GitHub account.
The safer way to ensure the remote you’re working with is to explicitly say what remote are you pushing to:
If you want to push to your personal repository:
git push gh my_branch
If you want to push to your organization’s repository:
git push lab working_branch
It will be his pattern:
git push <remote> <remote_branch>
You could also set up a local branch to track the remote branch on your remote
gh like this:
git checkout -b my_branch -t gh/my_branch
Hope this helps.
If you really want to avoid messing things out, then you could consider working with two local repos, each cloning a specific branch:
- one cloning Ninguem.github.com:Ninguem/prj.git
- one cloning Ninguem.github.com:lab-rasparta-org/prj.git
That way, you are sure you are not in the wrong branch, or pushing to the wrong remote.