我想将当前的修改覆盖历史的Commit: 93af0c44615f92f2c4871f5c2d47d9f3a4d549a7,我需要怎么做呢?
# 1) 可选, 先做备份分支(防止误操作)
git branch backup/before-overwrite-93af
# 2) 只暂存你要覆盖进 93af 的文件
git add xxx.c
# 3) 生成 fixup 提交(目标是 93af)
git commit --fixup=93af0c44615f92f2c4871f5c2d47d9f3a4d549a7
# 4) 自动把 fixup 折叠进 93af(无交互,7ca94afa为93af的前一个父提交)
GIT_SEQUENCE_EDITOR=true git rebase -i --autosquash 7ca94afa
也可以是这样(93af0c4^也会解析成93af0c4的父提交7ca94afa):
GIT_SEQUENCE_EDITOR=true git rebase -i --autosquash 93af0c4^
# 5)同步到远程
git push --force-with-lease origin develop
# 6) 检查结果
git log --oneline --decorate -n 6

浙公网安备 33010602011771号