1、merge 与 rebase的区别
meger:
merge: 会生成一个新的节点,之前的提交会分开显示
rebase: 操作不会生成新的节点,是将两个分支融合成一个线性的提交
2、git合并分支上指定的commit
合并单个:
merge 能够胜任平常大部分的合并需求。但也会遇到某些特殊的情况,例如正在开发一个新的功能,线上说有一个紧急的bug要修复。bug修好了但并不像把仍在开发的新功能代码也提交到线上去。这时候也许想要一个只合并指定某些 commit 的功能。
假设分支结构如下:
dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 [master]
\
76cada-62ecb3-b886a0[feature]
再假设 62 ecb3 的提交修复了bug,这时候可以用
cherry pick 合并单个 commit
具体操作:
git checkout master
git cherry-pick 62ecb3
就这么简单。 62ecb3 已经应用在 master 上了(作为一个新的commit)。
合并多个:
3、基于某个分支的某次提交创建一个新的分支
git checkout -b newbranch 62ecb3