如何小批量执行巨大的 git rebase?

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

我在我的项目中使用 gstreamer 版本 1.18,其中包含多个单独的存储库。例如:

  • gst-插件库
  • gst-插件-好
  • gst-插件-坏
  • gst-插件-丑陋

上述所有单独的 git 存储库都是 gstreamer 项目的一部分。 在本地,我们在这些单独的存储库中有一些私人提交。例如,700 次提交

最近,gstreamer项目已转换为mono repo。所有子存储库都合并在一起并形成一个存储库。

现在,我们想将本地 gstreamer 版本从 1.18 升级到 1.22。为此,首先,我们使用 gstreamer 社区提供的脚本将 gstreamer 1.18 转换为 mono 存储库。然后我们尝试用 1.22 来 rebase 这个 1.18 本地分支。

我们看到总共有 4000 个提交需要重新确定基础。现在,我正在使用以下命令来执行变基:

git rebase -i <branch_1.22>

有什么方法可以将这 4000 个提交分成块并批量处理它们?

git gstreamer
1个回答
0
投票

当您有大量提交需要变基时,同时管理它们确实会变得很麻烦。这是有效处理此问题的推荐方法:

1。分而治之: 您可以将它们分成更小的块,然后一一进行 rebase,而不是一次对所有 4000 个提交进行 rebase。这可以使该过程更易于管理且不易出错。

2。使用 autosquash 进行交互式变基: 使用 Git (

git rebase -i
) 的交互式变基功能根据需要重新排序、压缩或编辑提交。您还可以使用 autosquash 功能自动将相关提交压缩在一起。这可以帮助简化变基过程并减少冲突数量。

3.使用 git rerere: Git 的 rerere(重用记录的解决方案)功能在解决变基期间的冲突时非常有用。它记录以前的冲突解决方案,并自动将其应用于将来的类似冲突。这在处理重复性冲突时可以节省时间和精力。

4。测试每个块: 在重新调整每个提交块的基础后,彻底测试您的代码以确保一切都按预期工作。这将有助于及早发现任何问题并避免日后出现问题。

5。备份您的工作: 在开始变基过程之前,请确保创建存储库的备份或在单独的分支上工作。这将提供一个安全网,以防在变基期间出现任何问题。

6。与您的团队协作: 如果您在团队中工作,请与同事就变基过程进行沟通并协调您的工作。这可以帮助避免冲突并确保每个人都在同一页面上。

按照以下步骤,您可以高效有序地将本地 GStreamer 版本从 1.18 升级到 1.22。

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