It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Merge a particular commit to another branch in sourcetree

I have to merge a particular commit to another branch. Let's say I have 2 branches live and dev, when I complete the work in the dev need to merge those files to live branch. There are several people working in this project. I don't need to merge all the changes from others, just the changes from my side.

Whenever i tried to merge it always merge everything means all the changes from other user also. Anyone has a solution for this. I am not much familiar with Source tree, neither git.

Below an ref pic for my repo

 

footer-pic.jpg

 

 

 

 

3 answers

1 accepted

3 votes
Answer accepted

You shouldn't have shared a branch with others if you would like to merge your changes only. If you really want to resolve your problem now, I would check out the root of the branch and create another new branch, then cherry pick your own changes only on the branch and merge it to live. It might cause merge conflicts later when others try to merge their changes, though.

Thanks!. I just started on this Git things, Can you please elaborate with some steps, how to do this

If you want a branch that only has your changes, first checkout the commit just before any changes are made (right-click on the Log/History and choose Checkout) and make a new branch there. Then, right-click on each your change and choose Cherry Pick until all your changes are committed on the new branch. Now you should have a branch that only has your changes and you could merge it to any other branch. It is not a good idea to have multiple independent changes intermixed on a single branch in my opinion. Make as many branches as necessary as merging a branch is quite easy.

Like # people like this

Using current version (v1.9.10.0).

No sign of "Cherry Pick" when I right click a change.  What now?

@John L. Stanley, sounds like that should be it's own question.

If you want only the changes from a few commits (or just one, ideally), you can use the cherry-pick feature.

Checkout the branch you want to apply the changes to, then right-click the commit that has the changes you want and choose cherry-pick.

In the future, you should follow Kaz's advice: if you are going to want to keep your changes separate from others' changes, you should commit them into a separate, local-only branch. Your team might want to consider using the git flow development model:

https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow

http://nvie.com/posts/a-successful-git-branching-model/

SourceTree even has directly integrated a git plugin to facilitate git flow. Make sure you understand it before you try to use it, though.

After a bunch of poking around I found it.  At some point, "Cherry Pick" was renamed.

So follow Kaz's second posting (the one dated Sept 14, 2015), but select the "Graft.." menu item instead of the now non-existent "Cherry Pick".

Are you possibly using Mercurial instead of Git? SourceTree uses the terminology of the underlying DVCS.

Suggest an answer

Log in or Sign up to answer
Community showcase
Published in Sourcetree

Sourcetree for Windows - CVE-2019-11582 - Remote Code Execution vulnerability

A vulnerability has been published today in regards to Sourcetree for Windows.  The goal of this article is to give you a summary of information we have gathered from Atlassian Community as a st...

1,687 views 0 10
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you