git merge和cherry-pick
应用场景:
假设一个项目有两个环境:测试环境和生产环境
项目经理要求为了保证测试环境和生产环境代码一致,必须先在测试环境上开发功能,测试上测完没问题了,才能把测试环境上的代码给 [移动] 到生产环境上。
上句话其实隐含了:
1、测试环境的代码比生产环境要新。
2、测试环境上面有很多提交记录,但是只有验证通过的记录,才会 [移动] 到生产环境
3、测试环境上面不止是由你一个人开发的,你如果想把代码 [移动] 到生产环境,最好只移动你自己的。
下面分情况讨论:
第一种情况:测试环境的新增代码全部都是你一个人提交的,现在要把所有测试上的新增代码移动到生产环境
这种情况最简单,直接使用merge命令即可:
步骤如下:
- 切换到 [生产环境] 分支:
git checkout 生产环境
- 执行命令 :
git merge 测试环境名
这样会把你所有测试环境代码都合到生产环境来
第二种情况:测试环境的新增代码有很多人提交,只移动你自己的某一条或某几条到生产环境,其他人的代码不管,仍然留在测试环境
使用cherry-pick命令,步骤如下:
- 切换到 [生产环境] 分支:
git checkout 生产环境
- 执行命令 :
git cherry-pick cb3f3e153ab1c3c773914d3945024f3650c3948b
后面的参数是一串哈希值,代表你想要移动的那条提交记录。
然后你切换到生产环境,发现只有你选择的那一条记录合并过来了。其他的记录没动。