基于git的场景解决
场景-推送远程仓库的代码被prettier大范围格式化
场景描述
- vscode配置了格式化工具prettier、失去焦点自动保存和保存时自动格式化。在项目中开发新功能时,被查看的旧代码自动格式化,推送了3次提交,记录中会显示大范围的更改,不方便review。
- 现在需要保持结构,同时清除格式化内容。
技术背景
- git
方案解决
- 本地vscode中取消失去焦点自动保存和保存时自动格式化等设置。
- 修改历史方案
- git rebase -i HEAD~3
- 修改最近3次提交。
- 在显示的编辑器中将最近三次提交的标识“pick”改为“edit”,退出编辑器。
- 此时 本地commit回退到三次提交中的第一次提交
- 修改
- git add -p 选择保留修改。
- 可配置vscode为git的编辑器。
- 或 查看第一次提交中更改,复制粘贴为第一次提交之前的代码,将自己的修改逐个粘贴。
- git add -p 选择保留修改。
- git status
- 查看修改文件
- git add …
- 将更改重新添加
- git commit --amend
- 修正历史提交
- git rebase --continue
- 处理下一个提交
- 迭代上述步骤
- git push --force-with-lease origin [branch-name]
- 将本地commit变更同步到远程,覆盖远程历史。
- git rebase -i HEAD~3