周日晚些时候,我犯了一个错误的错误。我提交并直接推入主分支,我应该创建一个分支,然后将更改推送到新分支。
所以我可以做git revert SHA
以使用新提交恢复最后一次提交。
然而,我的改变怎么样,我不想放松它们。
我应该从已经修改过的Master中创建一个分支,如git checkout -b feature
,然后还原主分支吗?
但是,一旦我将功能合并到主服务器中会发生什么,它会不会知道该提交已在Master上恢复并消除它? git merge feature
顺便说一下,没有历史重写问题,因为我是这个项目的唯一开发人员。因此,如果它是更好的选择,我会考虑硬复位。
感谢您的建议
答案 0 :(得分:5)
如果您是唯一的开发人员,那么您可以进行硬重置。如果abc123
是意外提交的SHA1,则执行:
git checkout master
git branch feature-branch
git reset --hard abc123^
这将使您的新提交保留在新的feature-branch
分支中(尚未切换到新的分支),然后将master
倒回到先前的提交。然后,您可以使用master
推送已更正的git push -f origin master
分支。