意外删除了 Github 桌面上的分支

tHa*_*art 1 git github github-desktop

我不小心删除了一个分支而没有推送我的提交,有什么办法可以恢复该分支(有或没有提交)?我在 GitHub 上看到了该分支,但它不允许我在 Github 桌面上提取它

这些按钮彼此靠近

在此输入图像描述

mat*_*att 7

在引用日志 \xe2\x80\x94 git reflog\xe2\x80\x94 中查找 HEAD 指向分支的最新条目。(您可能会知道这一点,因为上面的条目将显示您从该分支切换。)git switch --det <SHA>条目。现在再次创建分支名称。

\n
\n

例子。我们从这个开始:

\n
* 31da420 (mybranch) c3\n* 0ec170a c2\n* cc73d1b c1\n| * 7dcb9af (HEAD -> main) emptied c2\n| * 7e2b31f c2\n|/  \n* 61bc628 three\n* e4b07f5 two\n* 9bfc0a6 one\n
Run Code Online (Sandbox Code Playgroud)\n

我们现在不小心删除了mybranch

\n
% git branch -D mybranch\n
Run Code Online (Sandbox Code Playgroud)\n

该死。让我们探索一下转发日志:

\n
% git reflog\n7dcb9af (HEAD -> main) HEAD@{0}: checkout: moving from mybranch to main\n31da420 HEAD@{1}: reset: moving to 31da420\n
Run Code Online (Sandbox Code Playgroud)\n

既然第一个说我们从我的分支机构搬走了,第二个肯定 mybranch。所以:

\n
% git switch --det 31da420\n% git switch -c mybranch\n
Run Code Online (Sandbox Code Playgroud)\n

完毕!为了证明这一点,我将main再次调查一下情况:

\n
% git switch main\n* 31da420 (mybranch) c3\n* 0ec170a c2\n* cc73d1b c1\n| * 7dcb9af (HEAD -> main) emptied c2\n| * 7e2b31f c2\n|/  \n* 61bc628 three\n* e4b07f5 two\n* 9bfc0a6 one\n
Run Code Online (Sandbox Code Playgroud)\n

和以前一模一样。

\n

  • 分支_就是_一个名字。这就是最终的_全部_。这是一次提交的名称。你扔掉了名字,这就是你扔掉的全部。现在,您再次创建该名称,并将其附加到您丢弃它时所附加的同一个提交中。结果:一切都和以前一模一样。 (2认同)