如何从远程分支永久删除少量提交
我知道这是历史的重写,这是糟糕的yada yada。
但如何永久删除远程分支的一些提交?
你' git reset
'你的本地分支,然后你git push --force
你修改后的本地分支git push --force
到远程。 (这里的其他解决方案,包括删除远程分支,并重新推送它)
这个答案说明了这种命令的危险性,特别是当人们依赖远程历史记录来获得本地回购时。
您需要做好准备,指出人们正在从git rebase
手册页的RECOVERING FROM UPSTREAM REBASE部分
重要:请确保您指定了“git push -f”上的哪些分支,否则您可能会无意中修改其他分支![*]
本教程中显示了三个选项。 如果链路断开,我会在这里离开主要步骤。
1恢复完全提交
git revert dd61ab23
2删除最后一次提交
git push <<remote>> +dd61ab23^:master
或者,如果该分支在本地可用
git reset HEAD^ --hard
git push <<remote>> -f
其中+ dd61 ...是您的提交散列,git将x ^解释为x的父亲,并将+作为强制非fastforwared推送。
3从列表中删除提交
git rebase -i dd61ab23^
这将打开并显示所有提交列表的编辑器。 删除你想摆脱的那个。 完成rebase并推动回购。
git rebase --continue
git push <remote_repo> <remote_branch> -f
只需注意在恢复非工作提交时使用last_working_commit_id
git reset --hard <last_working_commit_id>
所以我们不能重置为我们不想要的commit_id
。
那么肯定,我们必须推送到远程分支:
git push --force
链接地址: http://www.djcxy.com/p/48921.html
上一篇: How to permanently remove few commits from remote branch