关于git:GitHub还原还是重置?

GitHub revert or reset?

本问题已经有最佳答案,请猛点这里访问。

正如你在图片中看到的,我在FeatureForum_Kolo_3工作,我决定完成这个功能并将它合并到开发中(但没有将更改推到远程开发中,所以只是局部更改),然后我意识到这是一个坏主意,现在我想删除这个合并,就像它从未发生过一样。

所以这里描述的类似情况是:由于合并而不允许git revert,但是没有给出-m选项

但我不太确定现在该怎么做,反转还是重置?我想撤销刚才的合并。

我还发现了如何将Git存储库恢复为以前的提交?

git revert --no-commit 0766c053..HEAD

git commit

这似乎是个更好的主意……但我不知道

sourctree


当要撤消的更改已发布时,git revert非常有用。它基本上恢复由另一个提交操作的更改(删除添加的行,添加删除的行,在另一个方向上更改更改的行)。

它与"撤消"操作类似,但通常发生在其他提交已添加到分支并创建新提交之后。

now I want to remove this merge, like it never happened.

由于您没有发布更改,所以最好的解决方案是使用git reset --hard

如果您在develop分支上,最后一个命令是git merge feature/forum_kolo_3,运行git reset --hard HEAD^1。它将当前分支(develop移动到合并提交的第一个父级(即合并前所在的位置)。


只需在合并之前找到开发分支的最后一个提交,然后将Git历史重置为该提交。

1
git reset --hard [cc]

您可以使用图形工具(如gitkgit log --oneline --decorate=full --graph来查找开发分支的最后一个提交。

注意:请确保不要重置为功能分支的最后一次提交。