1. Git 使用cherry-pick"摘樱桃"
step 1: 本地切到远程分支,对齐要对齐的base分支,举例子 localmap
cpp
git pull
git reset --hard localmap 对应的commit id
step 2: 执行cherry-pick命令
cpp
git cherry-pick abc123
这样就会将远程分支gq/localmap中哈希值为abc123的提交应用到本地分支localmap-dev上。
step 3:
全文搜索
cpp
>>>>>>
处理冲突即可
2. Git 使用revert回滚已提交的commit
在git使用中如果提交错误的代码至远程服务器,可以使用git revert 命令回滚单次commit并且不影响其他commit。
回滚最新一次的提交记录: git revert HEAD
回滚前一次的提交记录 : git revert HEAD^
对历史上的commit回滚: git revert
回滚历史commit很容易产生文件冲突,需要做好冲突处理。
使用SourceTree进行commit revert
在准备revert 的commit上右键 选择 reverse commit。 revert命令与reset命令不同,是生成一次新的commit冲抵原来的commit, reset直接删除某些commit的内容。Revert历史上的commit 很容易产出文件冲突, 在这次回滚中,对于有冲突的文件都没有进行回滚,只将未产生文件冲突的文件进行了回滚。
确认生成的新commit编译成功,也没有文件冲突,可以push到服务器,完成回滚。