因此,我试图确定这个工作流是否理想,以及如何解决它的一个常见问题。目前,我有一个已完成的项目,在我的主分支的一个git回购。我现在需要做的是把这个项目分成20个“章节”。每一章都代表了一些进展,从第1章的一个完全空白的项目到第20章的完整项目。理想情况下,回购分支应该是:
Chapter1大师..。Chapter20 (它与Master类似,因为项目已经完成)
这似乎是一种合理的结构方式吗?此外,在我进行更改时,我想知道如果我忘记了某件事,如何对所有分支进行共同的承诺。举个例子,如果在第10章,我意识到在第2章中有一些我忽略了的东西,我可以回到第2章,把它添加到第2章,但是我想把它添加到3到10中,以代表这个变化一直存在。这有可能吗?
谢谢
发布于 2016-02-07 16:58:34
如果你想坚持每一章的分支,那么你的方法是一种可能性。这取决于您的实际需求和文档/项目结构。但如果你改变了某事物。在(分支) "chapter2“中,必须将其合并为以下所有章节(子分支),即
git checkout chapter2;
# edit chapter2.txt, git add, git commit
git checkout chapter3; git merge chapter2;
git checkout chapter4; git merge chapter3;
...
git checkout chapter20; git merge chapter19;更新:如果您希望您的章节完全独立于彼此,您也可以使用git的章鱼合并。这是将多个分支合并到当前分支中。从你所描述的情况来看,我不推荐它,只是向你展示:
然后你会有20个分支chapter1 ..。不相互依赖的chapter20,即chapter2不是"chapter1 + edits",它只是chapter2。每个分支只处理(和看到)它自己的章节,没有其他的。然后,当你想发行一本新书时,你会
git checkout master
git merge chapter1 chapter2 chapter3 ... chapter20分支母版是所有章节的合并。这就产生了gitk中有趣的图片,因此章鱼的名字;-)
缺点是,branchX不能依赖于其他分支中的任何更改。如前所述,这取决于情况,这对你是否有意义。
发布于 2016-02-07 16:58:30
当您使用所谓的特性分支时,您描述的场景类似于“标准”软件开发。您将需要将您的章节分支合并为主人,然后每个人都需要从主分支合并到他们工作的章节分支(Es)。当某人需要更改旧的章节时,您可能会有一些冲突,但这看起来仍然是可能的。
发布于 2016-02-07 18:43:34
听起来tags比branches更合适。https://softwareengineering.stackexchange.com/questions/165725/git-branching-and-tagging-best-practices可能会为您提供一些见解。我最初是从一个专业项目的角度来问这个问题的,但我认为同样的想法同样适用于一个教程。
https://stackoverflow.com/questions/35255916
复制相似问题