版本控制系统的话题可能有点过大教为问答&这样的网站堆栈溢出的一部分。当然欢迎您提问关于它们的问题,但“任何人都可以告诉我所有我需要了解的信息”可能不是正确的地方。
如果你有兴趣在分布式版本控制系统,因为你所提到的git,你应该看一看hginit.com。尽管该网站描述了Mercurial,但大部分(如果不是全部)也适用于git。
至于创建这些文件夹的建议,完全取决于您决定使用的版本控制系统。
Subversion使用文件夹级别的“副本”来创建分支。把它想象成同时在磁盘上有多个副本,并且Subversion允许你将变化从一个文件夹合并到另一个文件夹,并跟踪你合并了什么,什么时候以及在哪个方向。
对于DVCS”,这是没有必要的,因为分支以不同的方式进行,因此你不需要这些目录。
您列出可以概括如下(注意,由于我使用的水银,我可能会通过它们在该系统中有色)词汇:
- 干线 - 你的主要发展线。如果你没有源代码管理,那么这就是你一直工作的地方。
- 标签 - 一个标签是一个轻量级的标记,将其视为一个postit记事,将其粘贴到您的项目的某个版本上,以便以后可以回答问题“嗯,我想知道所有源文件看起来像当我发布版本1.0“
- 分支 - 分支是您的项目的平行宇宙副本,可能与变化。例如,当你发布1.0版本时,你可能会创建该标签,但你也可以创建一个分支。然后,在主干上,您将开始工作到版本2.0或1.1,并且如果您需要发布修补程序1.0来修复错误,那么您将在该分支上执行这些修复。
- 合并 - (修改或分支机构,这不同于系统到系统)当你有多个分支,你可以问你的版本控制系统,以帮助您通过将它们合并在一个分支进行到另一个变化
- 变更集/修订版 - 近似同义词,表示您同时进行的一组更改。它可能是修复一个特定的bug,或添加一个特定的功能。变更集可以包含对许多文件的更改,甚至包含新文件或不再需要的文件删除。
Wikipedia article on Revision control也有相当多的有用信息。
Mercurial glossary也列出了Mercurial中相当多的术语及其用法,并且许多版本控制系统中的许多信息都是正确的。
无论如何,这是一个典型的(对我而言)做一个项目的方式。
- 您创建初始项目库,只有主分支里(主干线在Subversion中,默认情况下,水银,主人?我觉得在GIT)
- 然后你开始你的项目中,你经常犯,你建立了一个很好的变更集列表
- 在某些时候,你准备发布1.0版本,所以你创建了这个标签,并且在那个点上创建了一个名为“1.0”的分支,然后你释放你的软件
- 然后,您继续工作,朝着版本1.1或2.0,具体取决于
- 在某些点你有一个1.0客户发现的错误列表
- 你修复这些错误在trunk/default/master中,以便下一个大版本至少有这些错误修正,然后你将这些修改合并回到1.0
- 当1.0所有已知的bug已经修复,您标记,作为1.01,并释放
- 然后再重新打开2.0
- 工作在2.0准备好释放,你标记和分支再等
这只是一种方法,它有很多。如果你问他们,人们会告诉你他们喜欢的方式,我不会说我的方式是对的。
谢谢你花时间回答:)我并不真的搜索版本控制系统的所有内容很多像堆栈溢出这样的网站;)我只是想知道一些“基础知识”,如干线标签分支的东西(换句话说,一般的开发过程如何);所以有些东西开始“理解”并继续我对这些系统的研究 – tbolender 2011-04-24 22:47:29
我已经编辑了一些更多的细节。请注意,有可能没有正确的方法来做到这一点,但有很多不好的方法可以做到这一点,好的方法以不同的方式很好。我建议你先决定是否要使用集中版本控制系统或分布式版本控制系统(即。Subversion vs. Mercurial/git),然后阅读它们各自的工作方式。细节决定成败。然而,我的建议是配合DVCS,因为我使用Mercurial,当然Mercurial是最好的:) – 2011-04-24 22:56:42
“更多的细节”o_O。顺便说一句,答案本身+1,并提到mercurial作为一个起点。 – zerkms 2011-04-24 23:00:42