将一些提交移动到功能分支,但将其他提交保留在主分支

时间:2017-02-12 19:02:49

标签: tortoisegit

我不确定我是否可以对此采取任何措施,并保持原状并不是一件巨大的困难。

我确实尝试通过执行其他SO主题等步骤来解决问题,最终失去了所有帮助修订提交和文件。

事情有点乱,我会尽力解释。历史可以达到某一点:

  

从resource.h中删除未使用的资源ID值

你能看到日志截图的底部吗?

Help Topics - Show Log

从那时起,大多数提交都是帮助文件修订:

  • 删除帮助主题和冗余图片
  • 修改帮助主题和图片
  • 添加新的帮助主题和图片

但它变得复杂,因为有大量的帮助修改提交我有一些代码更改提交。例如:

  

将SetLoggingPath添加到CMSATools。

     

修订了CChristianLifeMinistryUtils :: FillStudentsListBox方法。现在它从发布者数据库中读取学生。

对于少数几个,情节会变浓,例如:

  

将“帮助”菜单添加到CPublishersDatabaseDlg。

在这些情况下,提交是代码更改和帮助修订更改的组合:

  

添加了OnHelpHelp菜单处理程序。

     

开始编写Help / HelpPublisherDatabase.html帮助主题。

主要问题:

从主分支中的此提交开始:从resource.h中删除未使用的资源ID值,我可以创建一个名为 help-revisions 的新功能分支,然后, 移动从master到功能分支的提交?

如果有可能,我假设我们需要移动纯粹帮助修改的提交。我不知道如何处理由帮助更改和代码更改混合的提交。

所以,理想情况下,我希望将所有帮助修订版拆分为一个功能分支,以便它可以合并到主服务器中,并在日志中看起来更好。保留代码调整在主服务器中单独提交到适当的位置。

相关问题是其中一些原因。但我毕竟不打算讨论这个问题。

如上所述,我只是想知道是否有可能改善我所指出的历史。

我是一名独立开发者,因此不必担心其他个人存储库。

感谢您的帮助和时间。

更新

我已经给了这个改变。我将所有要分割的提交标记为编辑。然后我开始了rebase。我勾选编辑/拆分并按需要修改它们直到它完成。

现在我的日志看起来像这样:

Log

在下面,它看起来像这样:

Log

那么如何摆脱那一节呢?在创建功能分支并进行樱桃采摘之前,我必须解决这个问题。

所以,在顶部我现在有一组新的提交,包括拆分提交。

得到它 - 强制推动了主分支。

1 个答案:

答案 0 :(得分:1)

这可以通过樱桃采摘和变调的混合来实现。

  1. 在受影响的所有提交之前创建一个新功能分支。然后选择要在该新功能分支上拥有的所有提交,并选择“Cherry-pick commits”。之后,您有一个分支,其中只有所选的提交已启用。

  2. 切换回上一个分支并对新创建的分支的父级执行rebase(您需要启用“force”)。现在再次标记所有樱桃选择的提交并选择跳过并启动rebase。现在,这个分支不再包含樱桃树枝了。