我不小心运行了'git分支< branchA>< branchB>-f',无法返回到之前的状态

krugob8w  于 2023-01-19  发布在  Git
关注(0)|答案(2)|浏览(154)

我不小心运行了git branch <branchA> <branchB> -f,无法返回到以前的状态...因此,我收到了太多的更改...
很Draw.io久以前,我在创建的一个分支中使用www.example.com编写了这个架构,当我认为是时候合并它时,我无法这样做,因为我收到了下面的消息。
There isn't anything to compare. master and document/initial-architecture are entirely different commit histories.

所以我查看了这个URL(There isn't anything to compare. Nothing to compare, branches are entirely different commit histories)。
所以我运行了下面的代码。

81906@DESKTOP-608QNA0 MINGW64 ~/Documents/slackbot-gpt3 (document/initial-architecture)
$ git branch master document/initial-architecture -f

81906@DESKTOP-608QNA0 MINGW64 ~/Documents/slackbot-gpt3 (document/initial-architecture)
$ git checkout master
Switched to branch 'master
Your branch and 'origin/master' have diverged,
and have 25 and 28 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

81906@DESKTOP-608QNA0 MINGW64 ~/Documents/slackbot-gpt3 (master)
$ git push origin master -f
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: error: GH006: Protected branch update failed for refs/heads/master.
remote: error: Cannot force-push to this protected branch
To https://github.com/Suchica/slackgpt3.git
 ! [remote rejected] master -> master (protected branch hook declined)
error: failed to push some refs to 'https://github.com/Suchica/slackgpt3.git'.

这里发生了37次修改,我想撤销它们,但是我不知道该怎么做。Git图是这样的。

这是git reflog的结果。

7cjasjjr

7cjasjjr1#

git reflog可能会保存您的时间,如果您此后没有进行太多的移动。
git reflog显示你的移动而不是你的分支历史,找到最后一个好位置和git reset --hard _YOUR_SHA_的SHA。
YMMV公司。

htrmnn0y

htrmnn0y2#

git branch -f branchA branchA@{1}

请参见git help revisions中的reflog语法。
@{1}语法是对此类oops的相当普遍的回退。
Shell历史扩展(由!引入)有一个“当前行”标记#和一个“最后一个字”选择器$,使得这里完全不需要重复分支名称的简写

git branch -f branchA !#$@{1}

我很想提一下。

相关问题