代码之家  ›  专栏  ›  技术社区  ›  classyname

如何恢复我删除了本地和GitHub版本并更改了默认分支的分支?

  •  -1
  • classyname  · 技术社区  · 2 年前

    好吧,所以我在尝试修复分支时不知怎么混淆了它们,最终删除了我在本地和GitHub中想要的分支。

    这一切都始于我被教导可以使用git.ignore让DS_Store停止出现并使我的分支无法使用。

    因此,在我实现了这一点之后,我创建了一个新的分支。然后我将这个新分支设置为我的新默认分支,因为我原来的默认分支被破坏了DS_Store,然后我删除了GitHub上的所有其他分支及其远程(除了一个我有新功能的旧分支);然而,当我启动应用程序时,我很快意识到我的代码比不间断的bug修复和优化晚了一周。

    我还是一个使用终端的新手,但我一直在研究堆栈交换中的问题。我要么找不到与我的具体问题相匹配的问题,要么它不起作用。

    不起作用的事情: 由于我删除了GitHub上的分支,我不能仅仅从存储库中克隆它们。 我在终端上找不到“已删除的分支”这个词。 当我输入“git log”时,我看不到要返回的提交。

    承诺事项: 当我输入“git reflog”时,我可以找到我认为要返回的提交: “1ae4160 HEAD@{21}:提交:修复了僵尸定位。”

    但当我打字时:

    “git分支1ae4160”

    我明白:

    “zsh:没有这样的文件或目录:newDebug”

    1 回复  |  直到 2 年前
        1
  •  1
  •   Vijayasenthil E    2 年前

    看起来您正在尝试恢复一个已删除的分支并重置为特定的提交。让我们一步一步走。

    首先,要在提交“1ae4160”时重新创建分支,可以使用以下命令:

    # Create a new branch at the desired commit
    git branch newDebug 1ae4160
    
    # Switch to the new branch
    git checkout newDebug
    

    或者,您可以将这些组合为一个命令:

    git checkout -b newDebug 1ae4160
    

    然而,您似乎遇到了Zsh shell的问题。在运行这些命令之前,请确保您位于Git存储库的正确目录中。

    如果您仍然面临问题,可以尝试使用完整的提交哈希或提交哈希的唯一前缀:

    git checkout-b newDebug 1ae4160
    

    将1ae4160替换为完整提交哈希或唯一前缀。

    此外,如果您已经删除了GitHub上的分支,那么在克隆存储库时可能看不到它。但是,如果分支存在于本地存储库中,则可以将其推回到GitHub:

    git push origin newDebug
    

    这假设您已经如上所述在本地重新创建了分支。

    我希望这能有所帮助!如果您遇到任何特定错误或有其他详细信息,请提供这些错误以获得更有针对性的帮助。