Team Services | TFS 2015 & TFS 2017 | Visual Studio 2015 & 2017
Copy commits from one branch to another using cherry-pick. Unlike a merge or rebase, cherry-pick only brings the changes from the commits you select, instead of all the changes in a branch.
Cherry-pick is a great way to tackle these common problems:
- Accidentally committing on the wrong branch. Cherry-pick the commit(s) over to the correct branch and then reset the original branch to the previous commit.
- Pulling out a set of commits made in a feature branch so you merge them back to your
- Porting in specific commits from the
masterbranch without rebasing your branch.
Cherry-pick a commit
Visual Studio 2015 Update 2 & 2107
- Open up Team Explorer and checkout to the branch you want to cherry-pick changes into using the Branches view.
- Right-click the branch containing the changes you want and select View History....
- Right-click the commit you want to cherry-pick and select Cherry-pick.
Visual Studio copies the changes made in that commit into a new one on your current branch.
Repeat this process for each commit you need to bring over to your current branch.
git log to find the commit ID of the commit whose changes you want to copy.
> git log app.ts commit d34bcef232f6cf033e1252b7300465d3e561b2ee Author: Francis Totten < email@example.com > Date: Wed May 18 21:10:39 2016 +0000 add complex query parsing logic
Once you have the commit ID, you pass it to
git cherry-pick to copy the changed into your current branch.
> git cherry-pick d34bcef232f6c
[featurebranch a343e2c] add complex query parsing logic Date: Thu May 19 19:07:26 2016 -0400 1 file changed, 67 insertions(+), 6 deletions(-)
If you need to cherry-pick a range of commits, you can use two commit IDs separated by
... to specify a range in your history.
> git cherry-pick d34bcef...86d2aec
[featurebranch a343e2c] add complex query parsing logic Date: Thu May 19 19:07:26 2016 -0400 1 file changed, 67 insertions(+), 6 deletions(-) [featurebranch 3065fc7] fix regression in error handling Date: Mon May 23 09:23:45 2016 -0400 1 file changed, 32 insertions(+), 15 deletions(-)