项目开发中 git
的分支一般会有三个分支:
dev
test
pub
正常情况下,应该在不同的环境下使用对应的分支
开发中的常见合并顺序是从 dev
->test
->pub
的合并顺序:
git checkout test
git merge dev
git push
git checkout dev
git checkout pub
git merge pub
git push
git checkout dev
但是有一次切换到test
分支后,忘记切回dev
分支,于是在上面修改了几个提交,产生了几个commit
,这个时候应该如何正确处理?
一般的解决办法是:
git log -n 10
查看test
分支上的最新10个提交,例如从A
开始新增了3个提交:
其中B
、C
、D
是test
分支上新产生的commit
,那么可以使用 git cherry-pick
命令。
git checkout dev
git cherry-pick B C D
一次性把 B
、C
、D
三个commit
从test
分支提取到dev
分支git cherry-pick A..D
,注意:此时 A
并不被包含在提取commit
范围内,也就是左开右闭的区间范围。你有更好的方式么?
就是这样干,如果代码差异大,merge的时候就要小心了