如何撤销一个提交并从这些更改创建一个新分支?

12

现在已经是周日晚上了,我犯了一个严重的错误。我直接提交并推送到了主分支,但其实应该创建一个新的分支,然后将更改推送到新分支中。

所以,我可以使用 git revert SHA 命令来撤销最近一次提交,并产生一个新的提交记录。

但是我的更改怎么办,我不想失去它们。

我是否应该从已经修改的主分支创建一个新分支,例如 git checkout -b feature,然后再对主分支进行撤销操作?

但是如果我将 feature 分支合并回主分支,它会知道之前在主分支上被撤销的提交吗?git merge feature

顺便说一下,由于我是这个项目中唯一的开发人员,所以不存在历史重写的问题。因此,如果这是更好的选择,我会考虑硬重置。

感谢您的建议。

1个回答

11

如果你是唯一的开发者,那么你可以进行硬重置。如果abc123是意外提交的SHA1值,那么请执行以下操作:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接