有时候我们需要只合并需要的那些commits,不需要的commits就不合并进去了。
合并某个分支上的单个commit
首先,用Git log查看一下你想选择哪些commits进行合并,例如:
commit f3e50d18922390742ea653f163d20fa90e38c0c6
Author: chenzongwen <chenzongwen@soyoung.com>
Date: Wed Jul 5 20:15:39 2017 +0800
add 4.file
commit 39d2aa42fb51ffacf656ac8c08e0bea877f00ac0
Author: chenzongwen <chenzongwen@soyoung.com>
Date: Wed Jul 5 20:05:09 2017 +0800
add 1.file
commit bdb45c242bff8f051855a5184cc90d7c2c2d278a
Author: chenzongwen <chenzongwen@soyoung.com>
Date: Wed Jul 5 20:03:48 2017 +0800
add owenchan
比如,你在dev分支上的commit 39d2aa42f 修改了一个重要的Bug,你现在只需要将39d2aa42f 合并到master,而不合并dev上的其他commits,所以我们用git cherry-pick命令来做:
git checkout master
git cherry-pick 39d2aa42f
合并结束了。现在39d2aa42f 就被合并到master分支,并在master中添加了commit(作为一个新的commit)。cherry-pick 和merge比较类似,如果git不能合并代码改动(比如遇到合并冲突),git需要你自己来解决冲突并手动添加commit。
基于master创建一个新的分支,并指明新分支的最后一个commit:
git checkout -b newbranch 62ecb3