经常会遇到一种情况, 就是如何从一个 target 分支中提取几个特殊的 commits 并合并到当前分支(通常都是一些紧急 bug 需要修复, 但是 target 分支中有一些并不需要或者还不稳定的 feature 暂不能发布)

实现方法入下:

首先, 使用 git log 或者 SourceTree 之类的工具来查看有哪些 commits 需要单独合并, 例如:

dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 [master]  
           \
            76cada - 62ecb3 - b886a0 [feature]

我们假设你在 62ecb3 中提交了 bug 修复, 并且这个修复现在很重要, 需要立即合并到当前分支. 那么我们可以使用 git cherry-pick 工具来取出这个 commit 并合并到当前分支

git checkout master  
git cherry-pick 62ecb3  

这样, commit 62ecb3 就合并到了 master 中.

当然, git cherry-pick 还有很多功能, 具体可以查看 git-cherry-pick