Git 如何恢复提交并根据这些更改创建新分支?
星期天晚了,我犯了一个严重的错误。我提交并直接推送到主分支,在那里我应该创建一个分支,并将更改推送到新分支 因此,我可以执行一个Git 如何恢复提交并根据这些更改创建新分支?,git,Git,星期天晚了,我犯了一个严重的错误。我提交并直接推送到主分支,在那里我应该创建一个分支,并将更改推送到新分支 因此,我可以执行一个git revert SHA来用一个新的提交还原上一次提交 但是我的改变怎么样,我不想失去它们 我是否应该从已经修改的主分支创建一个分支,如git checkout-b功能,然后恢复主分支 但,一旦我将该特性合并回主程序,它会知道该提交以前在主程序上被还原并消除它吗git合并功能 顺便说一句,没有历史重写的问题,因为我是这个项目唯一的开发人员。因此,我会考虑一个硬复位,
git revert SHA
来用一个新的提交还原上一次提交
但是我的改变怎么样,我不想失去它们
我是否应该从已经修改的主分支创建一个分支,如git checkout-b功能
,然后恢复主分支
但,一旦我将该特性合并回主程序,它会知道该提交以前在主程序上被还原并消除它吗<代码>git合并功能
顺便说一句,没有历史重写的问题,因为我是这个项目唯一的开发人员。因此,我会考虑一个硬复位,如果它是更好的选择。
感谢您的建议如果您是唯一的开发人员,那么您可以进行硬重置。如果
abc123
是意外提交的SHA1,则执行以下操作:
git checkout master
git branch feature-branch
git reset --hard abc123^
这将使您的新提交保持在新的功能分支
分支中(尚未切换到该新分支),然后将master
倒回上一次提交。然后,您可以使用git push-f origin master
推送已更正的master
分支