我正在尝试为与编程相关的教程设置版本控制。事实证明这是有问题的,因为有两种不同的历史:
本教程提供了项目构建的历史记录,每个章节都提供了该项目的历史记录,读者将看到这些历史记录。如果我从未打算再次更改教程中已编写的章节,我可以将每个章节作为标签存储在项目历史记录中。
然后还有教程本身的历史(不仅是文本,还有我对项目假装历史的研究)。如果我发现一个错误,我需要返回并在第 1 章中修复,那么在末尾添加新的提交是行不通的,因为我想更改项目在该阶段“出现”的方式,即在项目历史记录中插入提交并将章节的标签向前移动。
到目前为止,我已经考虑了几种可能性 - 使用 git 分支,其中每一章都是一个分支,每当我进行更改时,它就会重新定位到前一章的前面,我插入补丁的善变补丁队列,或者构建教程围绕一组我可以放入子存储库的模块。
我想我应该问是否有人有此类事情的经验,以及哪些解决方案有效,哪些无效。
我宁愿将每个章节隔离在其自己的分支中,而不是因为对早期章节的后期修复而重写所有项目的历史,HEAD
代表每个章节的当前状态。
组装所有教程更多的是一个发布管理问题(通过从 Git Repo 中提取相关信息来部署教程)。
然后您可以开发您的教程来实现类似的目标git 沉浸式.
(注:如果这更像是您想要的电子书,那么git 抄写员这将是一种更有趣的版本控制方式。)
The OP rusky在评论中添加:
我正在尝试对章节的示例代码进行版本控制,其中每一章的代码都基于前一章的代码
这意味着您添加的任何错误修复都需要报告给代表其他章节的其他分支,在这种情况下请参阅:
-
在 Git 中,如何将错误修复的提交应用到其他较新的分支?(避免挑选樱桃,这通常是一个坏主意)
- 使用主题分支
- rebase --onto解决方案
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)