How to merge one remote branch into another remote branch?
From what I understand, you have one remote foo, containing branch_1 and branch_2. First, we can't do merge operation remotly. We have to track the remote repository, do the operation we want locally (such as merging branches) and then push our new snapshot to the server.
Ie:
- git clone [repo_adress]
You are on the master branch.
- You can then checkout or create other branches and do your work in it.
Now suppose we have the two branches branch_1 and branch_2. You want to merge branch_1 into branch_2 and then delete branch_1.
You checkout to branch_2 and then merge branch_1 with it:
$ git checkout branch_2
$ git merge branch_1
From there either the merge is smooth or you've got conflict. Once the merge is done, you can delete the merged branch i.e branch_1 by doing:
$ git branch -d branch_1
And then push your work:
$ git push
In case branch_2 doesn't exist on the remote, you've got to create it:
$ git push -u foo branch_2
Note that deleting branch_1 locally doesn't delete it remotely (considering that it exists on the remote). To do so, we are going to say to git: "push nothing to the branch i want to delete" ie:
$ git push remote_name :branch_name
To read like git remote push remote_name "nothing":branch_name.
Now is there any mean to do it automatically?
I don't know (although I would investigate post merge "git hook"), but I'm not sure we ought to wish it. Deleting branches on remote is somewhat hazardous. Doing so manually is a good way to be sure of what we are doing.
You can switch to the tracking branch(a local branch which represents your remote branch) in which you want to merge another branch by using the following command
git checkout origin/name_of_your_branch
After that merge the another remote branch
git merge origin/brach_name_you_wanted_to_merge
After that, if any conflicts occur, solve it. and after that just commit and push.
and now checkout
to your local branch. by the following command
git checkout name_of_your_brnach
After that pull the origin by using git pull
command. that's it.