据说 Git 可以通过 rebase 合并几次提交,最终在历史记录中只留下合并后的那一个。
因为我在改一个 bug 的时候中途提交了几次,但最后需要把中间几次提交都取消掉,直接合并最后一次提交上去,比如
aaaaaa 修改前小小的重构
bbbbbb 修改拼写错误
cccccc 重算 a 过程
dddddd 重算 b 过程
eeeeee fix #2382
我想最终在历史记录只有
abcdef fix #2382,重算了 a、b 过程
应该怎么做?
我平时用 SmartGit,不过用命令行解决也行
git rebase -i <eeeee的前一次提交>
불필요한 커밋의 앞부분을 s로 설정하고 저장하고 종료한 후 새 로그를 편집하는 작업이 더 복잡합니다
다른 방법도 있지만 aaaaa를 최신 커밋으로
해야 합니다.git reset --soft <eeeee的前一次提交>
한 다음 다시git commit
어쨌든 이 두 가지 방법은 상대적으로 위험한 작업이므로 초보자는 먼저 좋아하는 프로젝트를 찾아 시도해 보는 것이 좋습니다.