📜  如何在 git 中恢复已删除的分支 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:38:15.865000             🧑  作者: Mango

如何在 Git 中恢复已删除的分支 - Shell-Bash

如果您不小心删除了 Git 中的分支,而且没有备份,也不必惊慌失措!在本文中,我们将学习如何恢复已删除的分支。

方法一:使用 reflog 命令

reflog 命令记录了所有 git 中的引用更改,包括分支、标签和 HEAD。这使得我们可以追踪回删除的分支。

以下是恢复已删除的分支的步骤:

  1. 找到您要恢复的分支名称。

    可以使用以下命令列出所有已删除分支的引用:

    git reflog --all | grep 'delete branch' | awk '{print $NF}'
    

    输出将会类似于以下这样:

    branch-name@{1}
    branch-name@{2}
    

    这些是被删除的分支及其对应的提交 SHA1 值。

  2. 创建新的分支。

    通过以下命令创建新的分支:

    git branch <new-branch-name> <sha1>
    

    其中 <new-branch-name> 是您要创建的新分支的名称,<sha1>是被删除分支所在提交的 SHA1 值。

    例如,如果要恢复名为 deleted-branch 的分支,其 SHA1 值为 2f9ac1d,则可以使用以下命令:

    git branch deleted-branch 2f9ac1d
    
  3. 切换到新分支。

    通过以下命令切换到新创建的分支:

    git checkout <new-branch-name>
    

    例如,如果要切换到名为 deleted-branch 的新分支,则可以使用以下命令:

    git checkout deleted-branch
    

现在,您已成功恢复了已删除的分支!

方法二:使用 reflog 和 reset 命令

除了上面介绍的方法外,我们还可以使用 Git 的 reset 命令来恢复已删除的分支。以下是具体步骤:

  1. 使用 reflog 命令查找被删除分支所在提交的 SHA1 值。

  2. 使用以下命令来恢复分支:

    git reset --hard <sha1>
    

    其中 <sha1> 是被删除分支所在提交的 SHA1 值。这将会将 HEAD 指向该提交。请注意,此命令会丢失任何未提交的更改。

  3. 使用以下命令来创建新的分支:

    git branch <new-branch-name>
    

    其中 <new-branch-name> 是您要创建的新分支的名称。

  4. 使用以下命令来切换到新创建的分支:

    git checkout <new-branch-name>
    

现在,您已成功恢复了已删除的分支!

结论

删除分支是 Git 中常见的操作之一,但误删分支也是经常发生的。在本文中,我们介绍了两种恢复已删除分支的方法,旨在帮助您在需要恢复丢失 Git 分支时,能够快速恢复它们。