Git rebase -I is not that scary
6 hours ago
- #version-control
- #rebase
- #git
- 作者对开发者中普遍存在的对git rebase -i的恐惧表示惊讶,即使是经验更丰富的开发者也是如此,并旨在揭开其神秘面纱。
- 运行git rebase -i HEAD~4会打开一个文本文件,其中列出了最近的提交和命令(pick、reword、squash、fixup、drop),这是一个变更计划,而不是立即执行的操作;用户可以使用git rebase --abort中止操作。
- 交互式变基涉及为每个提交编辑指令(例如,重新编写提交消息或删除提交),创建新的提交,同时旧的提交在git的对象数据库中保持完整,直到垃圾回收。
- 安全措施包括:使用git rebase --abort中止变基,使用引用日志恢复之前的状态(例如,git reset --hard HEAD@{4}),以及创建备份分支(git branch backup-before-rebase)。
- 在变基过程中可能会出现冲突,但可以一次解决一个提交(类似于合并冲突),使用git add和git rebase --continue,这使得它比分支合并更容易。
- 作者建议在个人功能分支上自由使用变基,并使用git push --force-with-lease推送(出于安全考虑,优于--force),同时强调理解和谨慎。
- 关键要点是开发者应该学习并使用交互式变基来保持分支历史的整洁,文章鼓励初学者尝试使用并克服恐惧。