如何删除特定分支在远程仓库中的首次commit?

注意:修改已推送至远程的提交历史会改变对应commit的哈希值,若该feature分支存在其他协作者,请提前告知所有人同步重置本地的对应分支,避免后续出现提交冲突。
操作步骤
- 切换到本地feature分支,同步远程最新代码
git checkout feature git pull origin feature - 删除本地的首次提交
如果你要删除的是feature分支的根提交(无父提交的首个提交),运行交互式变基命令操作全量提交记录:
在弹出的编辑界面中,找到你要删除的首次提交对应的行,将行首的git rebase -i --rootpick修改为drop,保存并退出编辑界面,本地会自动完成提交历史的重写。 - 推送修改后的分支到远程仓库
优先使用更安全的强制推送参数,避免意外覆盖其他人的最新推送:
如果确认远程分支没有未同步到本地的新提交,也可以直接使用常规强制推送:git push origin feature --force-with-leasegit push origin feature --force
补充说明
如果你的feature分支是从主分支切出,首个提交本身就是和主分支的分叉点,操作完成后后续向主分支提合并请求时不需要额外调整,按照正常流程操作即可。
内容的提问来源于stack exchange,提问作者Yuki
相关产品推荐
相关产品推荐

