使用Git分支进行书籍章节

时间:2015-12-30 16:25:52

标签: git branch

我想在GitHub存储库中提供一本书的示例代码。

读者应该能够检查对应于每个章节的代码的连续阶段。

首先我考虑过标记,但是,即使在完成本书之后,我也想修复任何章节的示例代码。因此,我的猜测是分支是要走的路。

对于每一章,我将使用前一章作为基础创建一个新分支:git branch <chapter2> <chapter1>

然后我就可以检查任何分支,即任何章节并修复它。

我永远不会合并各个分支,因为没有最终产品可以说。

如果我在第3章中修改了某些内容,我会检查该分支是否已修复并提交。以前的章节将不复存在,但第4章到最后一章会发生什么?我的猜测是,除非我合并它们,否则对第3章所做的任何更改都不会影响以下章节。那些章节/分支会慢慢分开。我对吗?

我是否真的想要对所有章节进行更改,我必须分别对每个章节进行更改。是这样吗?

或者,我可以在master上开发示例代码,然后,对于每一章,我将创建一个以刚刚完成的章节命名的分支。然后,我将继续为下一章工作。我假设分支在我创建分支时仍然指向master的状态,而不是我在master中做出的更改。是这样吗?那时,分支只不过是一种标记,因为它实际上并没有实际分支出那个主人。

感谢。

2 个答案:

答案 0 :(得分:2)

背景:分支和标签是referring to commits on disk的不同方式。

最简单的方法可能就是将所有章节的所有代码放在一个存储库中,可能在子目录中。您可以随时标记版本并更新所需内容。

如果你真的想要为每一章单独检查,并且没有合并的最终产品,我会把每一章都放在自己的回购中。这样你就有了独立的历史,读者很清楚这些章节是独立的。

答案 1 :(得分:1)

在我看来,你应该使用分支机构。

这是一个sample project,我用它来教授express(node.js) 每个步骤都在自己的分支中,用户可以比较步骤以查看每个步骤之间的变化。

  

我是否真的想要对所有章节进行更改,我必须分别对每个章节进行更改。是这样吗?

您可以使用cherry pick将您的提交添加到所有所需的分支。使用git rerere命令自动修复冲突。