GitHub 恢复或重置? [复制]

Posted

技术标签:

【中文标题】GitHub 恢复或重置? [复制]【英文标题】:GitHub revert or reset? [duplicate] 【发布时间】:2017-12-01 15:28:58 【问题描述】:

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

与此处描述的情况类似:git revert not allowed due to a merge but no -m option was given

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

我也发现了这个How to revert Git repository to a previous commit?

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

git 提交

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

【问题讨论】:

是的,我相信它是重复的 【参考方案1】:

git revert 在您要撤消的更改已经发布时很有用。它基本上还原了另一个提交操作的更改(删除添加的行,添加删除的行,在另一个方向更改更改的行)。

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

现在我想删除这个合并,就像它从未发生过一样。

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

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

【讨论】:

【参考方案2】:

在合并之前找到develop分支的最后一次提交,然后将你的git历史重置为那个提交。

git reset --hard <pre_merge_last_commit_id>

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

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

【讨论】:

以上是关于GitHub 恢复或重置? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何重置或更改 GitHub SSH 密钥的密码?

使用重置头恢复提交

conda重置或恢复base环境

ITDaily | GitHub下午崩掉,网友:强制下班,被迫摸鱼;比亚迪汉或使用华为鸿蒙OS系统 ;微软小冰将分拆独立运营

如何撤消 Github 中的先前提交 [重复]

GitHub 恢复本地被删除的文件