我在某个分支中得到了一些重复提交,每个提交都有相同的更改。它是一个公共分支,由几个用户从几个分支合并。我需要定期将这个分支重新绑定到另一个repo的主分支上,这些重复使它变得笨拙。
有没有办法删除这些并将它们推送到公共仓库,这使得从分支机构工作的其他用户变得复杂?
答案 0 :(得分:4)
如果你真的想要清理已经搞砸的分支,那么你应该在本地重新定位它,重新排列提交并在需要时强行将其推送到主线。
为了做到这一点(假设分支在本地检出,最后一个已知的良好状态,你已经开始获得那些重复的是20次提交之前)
git checkout yourPublicBranch
git rebase -i HEAD~20
这将启动您将能够管理提交的编辑器。然后你必须保存文件并退出rebase才能开始工作。这可能会导致冲突。
答案 1 :(得分:0)
使用 git filter-branch 重写历史记录。这是github的一个很好的介绍: