如何还原提交并根据这些更改创建新分支?

时间:2015-07-12 20:36:50

标签: git

周日晚些时候,我犯了一个错误的错误。我提交并直接推入主分支,我应该创建一个分支,然后将更改推送到新分支。

所以我可以做git revert SHA以使用新提交恢复最后一次提交。

然而,我的改变怎么样,我不想放松它们。

我应该从已经修改过的Master中创建一个分支,如git checkout -b feature,然后还原主分支吗?

但是,一旦我将功能合并到主服务器中会发生什么,它会不会知道该提交已在Master上恢复并消除它? git merge feature

顺便说一下,没有历史重写问题,因为我是这个项目的唯一开发人员。因此,如果它是更好的选择,我会考虑硬复位。

感谢您的建议

1 个答案:

答案 0 :(得分:5)

如果您是唯一的开发人员,那么您可以进行硬重置。如果abc123是意外提交的SHA1,则执行:

git checkout master
git branch feature-branch
git reset --hard abc123^

这将使您的新提交保留在新的feature-branch分支中(尚未切换到新的分支),然后将master倒回到先前的提交。然后,您可以使用master推送已更正的git push -f origin master分支。