Git - 搞砸后回滚所有本地更改

标签 git github git-branch branching-and-merging

我找不到我的问题的任何相关答案。我现在有两个分支:

  • 大师
  • 开发

提交并推送到服务器所有修改(到 develop 分支)后,我想用 develop 分支更新 master 分支。不小心我搞砸了,在 merge masterdevelop 之后 - master 现在拥有两个分支的所有内容,这不是我想要的.

如何恢复本地存储库中的所有内容?我试过 git reset --hard HEAD 但它似乎没有帮助。

最佳答案

解决方案一:

如果您发现当时的提交,您可以将您的分支重置为 merge 之前的状态。

使用 git reflog ,它将列出您拥有的所有 HEAD。 我发现 git reflog --relative-date非常有用,因为它显示了每次更改发生的时间。

一旦你发现那个提交就做一个git reset --hard <commit id>你的分支将像以前一样。


解决方案 2:

你可以简单地git revert像这样 merge 提交:

git checkout BRANCH_NAME
git revert -m 1 <merge_commit_sha>

注意:您可能会遇到一些必须手动取消 merge 的冲突,就像正常 merge 时一样。

关于Git - 搞砸后回滚所有本地更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43604183/

相关文章:

git - 如何使用 SmartGIT 在一次提交中将多个提交从分支 merge 到主控?

github - GitHub 在哪里托管所有数据和文件?

java - 使用 GitHub 生成的 HMAC 十六进制摘要与 Java 提供的摘要不匹配

git - 如何让 git 正确 merge 移动的内容(不仅是文件)

git - 如何对 git 分支输出进行版本排序(与通常的字母/字典排序相比)

ruby-on-rails - 在 Rails 中切换分支时,我应该如何处理数据库架构更改?

git - 有没有商业级的Git服务器产品

git - .gitignore 不会忽略该目录

git - .gitignore 和 git rm --cached 不会阻止文件被跟踪

xcode - Mac终端返回 "xcrun: error: unable to exec Xcode native xcrun (Exec format error)."