我最近开始将代码置于版本控制下(在实验室中,我正在SVN下工作,而我自己的代码在github中(显然是git))。在使用版本控制之前,我曾经做过类似的事情。我有一个带库名称的文件夹,其中有许多带版本号的文件夹。每当我想开始使用新版本时,我都会复制上一个版本,将名称更改为新版本并开始实施。
但是,当将文件夹置于版本控制下时,这似乎是多余的。除了冗余之外,如果有人想获得最新版本,那么只要他import
/ 她就可以下载所有版本clone
。
现在,我看到了使用版本控制执行此操作的许多方法,但是由于我是新手,所以我不知道哪种方法更可维护。
方法1:使用标签
如果我正确地理解了标签,那么您将拥有主分支,您可以进行所做的任何更改并使用版本进行标签。然后,当您想要获得它的工作副本时,您将获得带有特定标签的副本。(如果我错了纠正我)
方法2:分支版本
在这种方法中,主要分支将是开发分支。时不时地制作一个稳定的版本(例如v1.2.0
),您为该版本创建一个分支,并且永远不要提交它。这样,如果您要下载某个版本,则可以从该分支获取代码。尽管我说过您从未承诺过这样做,但有可能进行错误修复并承诺到旧版本的分支以保持旧版本运行。例如,如果当前版本为v2.0
,但是有些人想要使用v1.2
,则可以从中获取另一个分支v1.2
,即v1.2.1
提交错误修复程序,或者仅将版本保持不变,v1.2
然后提交错误修复程序。
所以分支看起来像这样:
v1.2.1 v1.2.2
/ /
v1.0.0 v1.2.0--------- v2.0.0
/ / /
-------------------------------------- dev
这样,您可以为每个次要版本更新创建分支。(请注意,在上图中,v1.2.1和v1.2.2或在v2.0.0发布之后创建的,因此它们不是v1.2.0和v2.0.0之间的开发的一部分。可以将其视为对较早版本的支持)
方法3:分支发展
此方法与以前的方法相反。主分支将是最新的稳定版本。每当使用新版本时,都将创建一个分支(用于开发),使用您的代码,并在代码稳定后将其与主分支合并。
在这种情况下,分支看起来像这样:
________ ____ ________________ _____ dev
/ \/ \/ \/
---------------------------------- latest_version
可能需要结合标签一起执行此操作吧?
问题!
无论如何,我的问题是,根据您的经验,这些方法中的哪一种被证明更实用?有没有已知的最佳方法(可能我没有弄清楚自己)?这些事情通常是怎么做的?