git rebase master时文件丢失冲突少,如何手动选择所有变更后完成变基?
Git Rebase 变更核查与自定义调整操作方案
前置操作(适用于当前仍处于变基冲突状态)
先中止当前异常的变基进程,回到变基前的初始状态,避免后续操作出现混乱:
git rebase --abort
查看本次变基涉及的所有变更
- 查看feature分支需要被重放的所有独有提交范围:
git log --oneline HEAD...master - 直接对比两个分支的全量差异,确认所有预期的改动和独有文件:
git diff master feature
逐提交可控完成变基
使用交互式变基实现每一步变更的人工校验和调整:
- 启动交互式变基任务
git rebase -i master - 在弹出的编辑界面中,将所有提交前的默认指令
pick修改为edit(可简写为e),保存退出后变基流程会自动启动,每应用一个提交就会暂停等待人工处理 - 每次暂停时,执行以下操作完成当前提交的校验调整:
- 执行
git status查看当前提交涉及的文件变更 - 执行
git diff查看具体代码改动,手动修改文件内容、恢复被误删的feature分支独有文件,确认所有需要保留的修改都已生效 - 调整完成后执行
git add .暂存修改,再执行git rebase --continue进入下一个提交的处理
- 执行
- 所有提交处理完成后,变基流程自动结束
变基完成后的校验
变基结束后可执行以下命令对比最终结果与原feature分支的差异,确认没有丢失需要的改动:git diff ORIG_HEAD HEAD
如果已经完成了错误的变基想要回溯,执行git reflog找到变基前的提交哈希(对应start: rebase操作之前的记录),执行git reset --hard <对应哈希值>即可回到变基前状态,再按上述流程重新操作。
内容的提问来源于stack exchange,提问作者andriejka
相关产品推荐
相关产品推荐

