[git] 批量删除commit history
DiracKeeko -场景:
远程仓库的时间线从前到后一共有6个提交,分别为A B C D E F(A是远程仓库第一个提交)
现在需要实现删除B C D的提交记录,让远程仓库的时间线上只出现 A E F。
操作方法
1、git rebase --onto commit-id^ commit-id (具体用哪个comiit-id 看下文举例)
2、处理好rebase之后的冲突(不一定会发生),处理完冲突之后,本地分支上已经没有了BCD的记录。
3、git push --force 强制推送到远程仓库
举例实操:
A (commit-id -> af65e5eff383ec5d36d530283ab5ec55fdeb87a5)
B
C
D (commit-id -> ef499db0cbfc959377c5e249e5f0b0d013623898)
E
F
需要删除 B C D的记录
那么需要 git rebase --onto (hash for A)^ (hash for D)
命令行输入
1、git rebase --onto af65e5eff383ec5d36d530283ab5ec55fdeb87a5^ ef499db0cbfc959377c5e249e5f0b0d013623898
2、手动处理冲突
3、git push --force
注意:
A作为远程仓库的第一个提交,这条提交记录无法被删除。
完结。
同步更新到自己的语雀
https://www.yuque.com/diracke...
特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。