如何将特定提交设置为“主分支上的最新提交”

问题描述 投票:0回答:1

我已经设法使我的 Git 存储库陷入似乎无法恢复的状态。我正在寻找有关如何恢复存储库结构的建议。

  • 提交获取评论包含我作品的最新版本。它驻留在分支上chaos(我出于沮丧而这样称呼它)

  • 提交相当大的重构mainchaos分支分歧的地方。

  • 提交 来自 Synovo/send-request 的合并拉取请求 #5 是 chaosmain 之间的合并提交。根据定义,它领先于chaos

我的目标是(尽可能多地)恢复存储库的线性,使得分支chaos上的更改或多或少地基于主干。

我提到变基是因为我的第一个想法是

  1. 恢复到包含我的更改的提交
  2. 重新定位到主

说实话,我不知道为什么这不起作用。大概是因为合并提交从未真正消失,而是被恢复了。

然后我尝试重置

  1. 重置为我的提交
  2. 承诺这些

这使得存储库处于可快速转发的状态,这样做时,我会在合并后返回到损坏的状态。

重要的是,我的所有更改都保存在我的提交中,我可以通过检查其哈希来获取它(编译并通过所有测试等,因此它是正确的)

我在下面附上了 git 图表屏幕截图来帮助说明我的问题。

在你提到它之前,是的,我知道这很混乱,我尝试了很多不同的方法,但都无济于事。

标有“获取评论”的提交是所需的提交。我想要的结构看起来像这样:

一些建议将不胜感激!

顺便说一句,这两个图的顺序相反。抱歉

git git-merge rebase
1个回答
0
投票

git switch chaos git reset --hard <sha of fetch comments>

二、修复大师:

git switch master git reset --hard <sha of rather large refactor>

现在只需
git merge chaos

,您就会得到想要的图表。

    

© www.soinside.com 2019 - 2024. All rights reserved.