我刚刚删除了一个 git 分支。
例如 :
mkdir test
cd test
git init
echo "Viva yo" > test.txt
git add .
git commit -m "test"
git checkout -b rama
echo "Viva tu" > test2.txt
git add .
git commit -m "test2"
git checkout master
git branch -D rama
如何恢复刚刚删除的分支?
如果我知道提交的哈希值,我可以通过以下方式检索它:
git checkout -b rama EL_HASH
但是我不知道它有什么哈希,我没有看它。
你可以试试:
git fsck --full --no-reflogs | grep commit
查找已删除分支的提交 HEAD。
如果你想找出哪个提交是正确的,你可以使用
git show
一旦你找到了提交消息,再次创建分支
git branch <uid>
据我了解,您可以使用
git reflog
它来查看您一直在做的提交,并且 SHA 必须出现。你可以这样做
git checkout -b <rama> <sha>
有时由于疲劳或任何其他情况分支被删除或文件被删除,为了在没有必要知识的情况下恢复它,我们最终使情况变得更糟,当我们用命令检查分支时,
git log
我们可以看到它不再存在,那是绝望开始的时候。失去了宝贵的工作。它发生在我身上,在拔掉头发并进行搜索后,我找到了一个解决方案,可以帮助我恢复我的分支。步骤是:git reflog
允许您查看甚至不再可用的命令git log
这将显示如下列表,其中列出了 git 中发生的所有事情,在那里我们将找到在我们的问题之前运行良好的 Head,即我们想要回到的一个。复制具有您要恢复的版本的 HEAD 的 GUID(HEAD 是上图中以红色圈出的那个),这将是一切正常的那个。
现在使用命令
reset
我们可以返回到所需的状态,肯定会删除它之后的所有内容,请注意下一个命令会永久删除所有内容并返回到以前的状态,因此请确保您使用正确的版本并且选择的 Head是您要返回的位置,对于此命令,我们将使用唯一标识符 GUID,即下图中蓝色的那个键入以下命令
git reset --hard 0f71e0d
并按回车键。如果您已经从本地删除了一个分支,
git branch -d local_branch
并且想要查看远程分支的内容,那么您可以获取远程分支它不会出现在您当地的分支机构中,但一旦完成,您就可以移动
例子:
您必须将自己放在另一个分支中,并从本地删除您的 dev 分支:
git branch -d dev
现在获取远程开发人员
git fetch origin dev
现在你走向它,让它出现:
git checkout -b dev