web开发问题的基本版本控制-单个开发人员。(SVN/GIT)

web开发问题的基本版本控制-单个开发人员。(SVN/GIT),git,svn,version-control,workflow,Git,Svn,Version Control,Workflow,耽搁了很久之后,我意识到我想在我的web开发工作流程中实现一个版本控制系统。我很少与他人合作,所以我所需要的是版本控制,以获得内心的平静和回滚能力等。我也在工作室使用笔记本电脑和台式机进行开发,因此我希望使用版本控制,以便我可以在不同的位置工作,并避免由此产生的冲突 我做了相当多的研究,大多数教程都相当先进,似乎超出了我的需要。基本上,我已经决定使用beanstalk和Versions.app中的SVN存储库来使用它 然而,在真正深入研究解决方案之前,我想回答三个快速问题: 是否真的需要使用典型

耽搁了很久之后,我意识到我想在我的web开发工作流程中实现一个版本控制系统。我很少与他人合作,所以我所需要的是版本控制,以获得内心的平静和回滚能力等。我也在工作室使用笔记本电脑和台式机进行开发,因此我希望使用版本控制,以便我可以在不同的位置工作,并避免由此产生的冲突

我做了相当多的研究,大多数教程都相当先进,似乎超出了我的需要。基本上,我已经决定使用beanstalk和Versions.app中的SVN存储库来使用它

然而,在真正深入研究解决方案之前,我想回答三个快速问题:

是否真的需要使用典型的SVN结构trunk/branchs/tags?我不能简单地使用repo作为web根目录吗

我如何从分支机构中获益?Beanstalk建议从分支部署。据我所知,这可能意味着创建一个生产分支,然后在部署之前从主干合并到该分支?有没有理由不简单地从主干部署,或者只是在SVN中拥有一个webroot并部署它?我想我主要是问,作为一个开发者,为什么我想在开发网站时使用分支

有什么理由我可以从GIT中获益吗?如果离线提交,我可以看到一个主要特性,但beanstalk甚至建议将SVN用于web开发文件html、php、图像等

非常感谢您的帮助。一段时间以来,我一直想使用版本控制系统进行离线开发。希望不再为我编辑实时服务器!我认为,在开始时,制定正确的工作流程是一个耗费时间和精力的项目,但最终还是值得的

-

编辑:我主要开发wordpress网站和各种EE项目,规模相当小,没有太大的投入

-


编辑:和所有事情一样,使用系统并尝试它是真正了解它的唯一途径。最后,我选择了git。我很高兴能够快速离线提交、快速分支和合并等。然后,使用capistrano进行部署,虽然最初的设置很复杂,但令人难以置信。我的工作流程现在有了惊人的改进。我可以快速地分支新功能并尝试新想法。没有git,我再也不会开发项目了

我建议遵循标准结构。如果您稍后邀请其他开发人员,并且他们熟悉标准结构,那么会容易得多

即使您独自一人,使用发布标签也是非常有用的。假设你把一个版本推到生产环境中,结果它被搞砸了。如果您总是在主干上做事情,那么您必须查看日期或变更集才能回滚。如果您为上一个版本添加了标签,您只需获取标签并推动它,而不会对一个更改的结束和另一个更改的开始产生任何压力

创建一个标签是很简单的,而且你从中获得的价值是巨大的


我在一个只有两个开发者的项目上工作了18个月,但我们还没有创建分支。我想您也不需要使用它们,而是可以从发布标签进行部署。

我建议遵循标准结构。如果您稍后邀请其他开发人员,并且他们熟悉标准结构,那么会容易得多

即使您独自一人,使用发布标签也是非常有用的。假设你把一个版本推到生产环境中,结果它被搞砸了。如果您总是在主干上做事情,那么您必须查看日期或变更集才能回滚。如果您为上一个版本添加了标签,您只需获取标签并推动它,而不会对一个更改的结束和另一个更改的开始产生任何压力

创建一个标签是很简单的,而且你从中获得的价值是巨大的


我在一个只有两个开发者的项目上工作了18个月,但我们还没有创建分支。我怀疑您也不需要使用它们,而是可以从发布标签进行部署。

我使用SVN多年,有时仍然使用,但我正在慢慢地将我的团队切换到git。Git更快、更灵活,并且允许本地提交。你可以在线或离线工作。使用git,您不需要分支和标记的文件夹结构,只需说git branch或git tag,它就会自动获取项目的快照。svn和git都有优点和缺点,但总的来说,我认为我会更喜欢git。这也是新事物,所以当你最终与团队合作时,学习可能会更好

我们通过释放分支。因此,git中的主干或主机是当前代码所在的位置。Bug修复和快速更改就在那里。需要花费数小时以上的开发工作将在一个分支中进行,用于新项目、添加内容以及您所从事的网站。随着bug修复和东西进入主干,w e将这些内容合并到我们的分支中,使其具有最新的修复和较小的更改。分支完成后,我们将部署到该分支,使其成为主干,并归档旧主干。我们还对发布的任何内容进行标记,这样我们就有了投入生产的内容的快照


我想你可以开始研究github上的私人回购。或者,您也可以在本地使用git,但最好有一个用于备份的异地服务器,或者将某些东西拉到另一台机器上

我使用SVN已有多年,有时仍然使用,但我正在慢慢地将我的团队切换到git。Git更快、更灵活,并且允许本地提交。你可以在线或离线工作。使用git,您不需要分支和标记的文件夹结构,只需说git branch或git tag,它就会自动获取项目的快照。svn和git都有优点和缺点,但总的来说,我认为我会更喜欢git。这也是新事物,所以当你最终与团队合作时,学习可能会更好

我们通过释放分支。因此,git中的主干或主机是当前代码所在的位置。Bug修复和快速更改就在那里。需要花费数小时以上的开发工作将在一个分支中进行,用于新项目、添加内容以及您所从事的网站。当bug修复和其他东西进入主干时,我们将它们合并回我们的分支,这样它就有了最新的修复和细微的更改。分支完成后,我们将部署到该分支,使其成为主干,并归档旧主干。我们还对发布的任何内容进行标记,这样我们就有了投入生产的内容的快照


我想你可以开始研究github上的私人回购。或者,您也可以在本地使用git,但最好有一个用于备份的异地服务器,或者将某些东西拉到另一台机器上

你真的有4个问题

是否真的需要使用典型的SVN结构trunk/branchs/tags

不,它只是更有用、更有用且经过长期测试的工作流:标记是永久性的标签,分支允许单独解决任务,并隐藏主干中最后一点的复杂性,并且当您有未完成的事情时,不会中断所有项目

我不能简单地使用repo作为web根目录吗

您不能使用存储库本身-存储库不是文件系统中的树,与您的项目相同。你可以尝试使用工作拷贝作为站点,但是可管理更新什么时候和什么时候版本快照至少我认为是更自然的方式

我如何从分支机构中获益

单独的开发线,其中:

不干扰主线 允许并行解决多个任务,并严格分离更改 有什么理由我可以从GIT中获益吗


不是来自Git,而是来自DVCS类-是的,这可能不是必须的:每个人都有自己的理由

你真的有4个问题

是否真的需要使用典型的SVN结构trunk/branchs/tags

不,它只是更有用、更有用且经过长期测试的工作流:标记是永久性的标签,分支允许单独解决任务,并隐藏主干中最后一点的复杂性,并且当您有未完成的事情时,不会中断所有项目

我不能简单地使用repo作为web根目录吗

您不能使用存储库本身-存储库不是文件系统中的树,与您的项目相同。你可以尝试使用工作拷贝作为站点,但是可管理更新什么时候和什么时候版本快照至少我认为是更自然的方式

我如何从分支机构中获益

单独的开发线,其中:

不干扰主线 允许并行解决多个任务,并严格分离更改 有什么理由我可以从GIT中获益吗


不是来自Git,而是来自DVCS类-是的,这可能不是必须的:每个人都有自己的理由

你看过这些问题吗?几乎是重复的-但答案是适用的。你看过这些问题吗?几乎是重复的-但答案是适用的。好的。这听起来像是一个合乎逻辑的工作流程。那么,您基本上是否将web根文件夹的所有内容都保存在主干文件夹中?然后,您可能会创建一个类似2.0的分支,并在该分支中处理重要的新功能,同时修复主干中的小问题?你是说你要部署分支机构吗?如何使其成为主干,以及如何归档旧主干?我想我很困惑,因为一旦一个分支完成了开发,它不只是重新合并到主干中然后被删除吗?您不必归档旧主干。即使在重新合并分支后,旧主干仍然存在。如果您需要它,只需拉一个旧版本。您通常会在将来可能需要再次引用的任何检查点上设置一个标记,这样可以更容易地查找和签出,例如发布的版本。如果您是git新手,我建议您使用和作为学习git workflow.bta的参考资料-这是我在svn中的工作流程。我只是复印了一份
旧箱子只是为了方便参考。我知道没有必要保留它。waffl-好吧,如果我们说的是subversion,它的实现与Git不同,尽管概念是相同的。我不一定把webroot作为主干。Trunk是项目所有源代码和依赖项的根。Trunk需要具备构建和运行项目所需的一切。我做树干上的小东西和树枝上的大东西。我确实部署了分支。归档旧主干只需将其复制到标记中并重命名即可。然后我将我的分支(例如MyApp 2.0)复制到svn回购的根目录,并将其重命名为trunk.Ok。这听起来像是一个合乎逻辑的工作流程。那么,您基本上是否将web根文件夹的所有内容都保存在主干文件夹中?然后,您可能会创建一个类似2.0的分支,并在该分支中处理重要的新功能,同时修复主干中的小问题?你是说你要部署分支机构吗?如何使其成为主干,以及如何归档旧主干?我想我很困惑,因为一旦一个分支完成了开发,它不只是重新合并到主干中然后被删除吗?您不必归档旧主干。即使在重新合并分支后,旧主干仍然存在。如果您需要它,只需拉一个旧版本。您通常会在将来可能需要再次引用的任何检查点上设置一个标记,这样可以更容易地查找和签出,例如发布的版本。如果您是git新手,我建议您使用和作为学习git workflow.bta的参考资料-这是我在svn中的工作流程。我只是复印了一份旧箱子,以便于参考。我知道没有必要保留它。waffl-好吧,如果我们说的是subversion,它的实现与Git不同,尽管概念是相同的。我不一定把webroot作为主干。Trunk是项目所有源代码和依赖项的根。Trunk需要具备构建和运行项目所需的一切。我做树干上的小东西和树枝上的大东西。我确实部署了分支。归档旧主干只需将其复制到标记中并重命名即可。然后我将我的分支(例如MyApp 2.0)复制到svn repo的根目录,并将其重命名为trunk。好的,一定要查看标记,谢谢!我有一个类似的问题,如下所示,您是否只需将所有web根文件保存在主干目录中?我们在主干上进行所有活动开发,是的。当我想创建一个发行版时,我创建了一个标记,然后我就可以在标记上执行一个svn导出,以获得没有.svn目录的所有内容。我把它涂上焦油,转移到我的网络服务器上,然后把它分解,我就可以开始了。好的,一定要看看标签,谢谢!我有一个类似的问题,如下所示,您是否只需将所有web根文件保存在主干目录中?我们在主干上进行所有活动开发,是的。当我想创建一个发行版时,我创建了一个标记,然后我就可以在标记上执行一个svn导出,以获得没有.svn目录的所有内容。我把它涂上焦油,转移到我的网络服务器上,然后引爆它,我就可以走了。