【问题标题】:Git - roll back all local changes after messing upGit - 搞砸后回滚所有本地更改
【发布时间】:2017-04-25 07:24:08
【问题描述】:

对于我的问题,我找不到任何相关的答案。我目前有两个分支:

  • master
  • develop

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

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

【问题讨论】:

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


    【解决方案1】:

    解决方案 1:

    如果你发现它当时的提交,你可以将你的分支重置为它在合并之前的状态。

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

    一旦你发现提交,只需执行git reset --hard <commit id>,你的分支就会和以前一样。


    解决方案 2:

    您可以像这样简单地git revert 合并提交:

    git checkout BRANCH_NAME
    git revert -m 1 <merge_commit_sha>
    

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

    【讨论】:

      【解决方案2】:

      您可以尝试检查特定的提交:

      git checkout [revision-hash] .
      

      在合并之前传递提交的哈希

      【讨论】:

      • 不幸的是它没有帮助......我现在搞砸了一个develop分支......难道没有像忽略所有内容并恢复到特定版本而不留下实际文件的东西吗就地?
      • 仅删除整个本地项目并将其从远程 git 克隆回来对我有用。
      【解决方案3】:

      当前已签出 master 分支:

      git reset --hard develop
      

      将切换到开发分支,丢失来自 master 的所有更改,除了那些已经包含在开发分支中的更改。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-05
        • 2021-01-25
        • 1970-01-01
        • 1970-01-01
        • 2016-11-10
        • 2014-12-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多