如何重置推送到git然后与另一个分支合并的更改?

时间:2016-04-20 05:47:57

标签: git

我错误地对git推了一些修改。然后这些更改与另一个分支合并。 由于合并,我无法重置初始分支中的更改。

我应该如何重置错误推送的更改?

1 个答案:

答案 0 :(得分:0)

您可能会考虑恢复到良好状态并推送修复错误的提交。这可以防止历史记录中的错误,但需要与任何已经完成修改的人进行协调,而其他分支只需通过合并即可修复。

重置和推送共享分支的问题在于,破坏的更改仍会出现在其他分支中。回购和分支。

如果你真的想重置分支:

假设master分支从提交开始,我们将调用good,在其上添加了提交,我们将调用brokenfeature分支已从master分支出来并开始了一些提交,我们会调用before,然后与master合并(broken )在提交中,我们会调用merge-broken,并在其他提交的基础上进行,我们将其称为after-broken

以下是如何修复这些分支,放弃对masterfeature分支的其他更改:

git branch -f master good
git branch -f feature before
git checkout feature
git merge master
git cherry-pick merge-broken..after-broken

这些变化可以推向上游,但如上所述,这在公共或共享仓库中可能会有危险:

git push origin +master +feature

其他用户可能需要使用--force标记来提取这些分支,并且可能需要以相同的方式调整其本地分支。