工具:Git
目的:能够跨分支、跨版本进行代码合并
主要命令:cherry-pick、rebase
注意:
1、合并时,可能出现冲突,务必优先解决冲突;
2、多个commit合并时,可能出现文件丢失、代码丢失情况,请务必仔细观察编译时系统提示的错误和警告;
3、冲突和错误没有解决的情况下,不得提交代码到gitlab;
4、根据实际场景,cherry-pick 与 rebase 命令配合使用;
cherry-pick相关命令:
git cherry-pick [commitId]:合并某个commit(单个)
git cherry-pick [commitIdA]..[commitIdC]:合并commitIdA到commitIdC的内容,不包含commitIdA
git cherry-pick [commitIdA]^..[commitIdC]:检出commitIdA到commitIdC的内容,包含commitIdA
git cherry-pick --quit:退出cherry-pick,不恢复之前的操作
git cherry-pick --abort:退出cherry-pick,恢复之前的操作
衍合流程相关命令:
git checkout -b new [commitId]:先起一个本地分支,指向你想要截取的代码的最新位置
git rebase --onto [你要衍合到的分支名] [..]^:commitId为你想要截取的代码的最早位置
git checkout [你要衍合到的分支名]
git merge new
其他可用命令:
git rebase --continue:衍合遇到冲突,可根据情况使用此命令,会保留冲突部分代码
git rebase --skip:衍合遇到冲突,可根据情况使用此命令,自动跳过冲突部分,不保留冲突代码
git rebase --abort:衍合遇到冲突,退出衍合操作并还原所有代码
辅助命令:
git stash:暂存本地变化,代码恢复到最新一次的提交或拉取状态;
git stash apply:取回之前暂存的本地变化;
git stash list:已暂存的本地变化列表;