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.

Tags:

Git