我已经在Subversion(我猜通用存储库)讨论中看到了很多这样的话.在过去的几年里,我一直在为我的项目使用SVN,但我从未掌握过这些目录的完整概念.
他们的意思是什么?
来自mercurial,我使用分支来组织功能.当然,我也想在我的历史中看到这种工作流程.
我使用git开始了我的新项目并完成了我的第一个功能.合并该功能时,我意识到git使用快进,即如果可能,它会将我的更改直接应用到主分支并忘记我的分支.
因此,思考未来:我是唯一一个从事这个项目的人.如果我使用git的默认方法(快进合并),我的历史将导致一个巨大的主分支.没有人知道我为每个功能使用了一个单独的分支,因为最后我只有那个巨大的主分支.这看起来不专业吗?
通过这种推理,我不想要快进合并,也不知道为什么它是默认的.这有什么好处的?
我们有一个网络应用程序,我们几乎每天更新和发布.我们使用git作为我们的VCS,我们当前的分支策略非常简单和破坏:我们有一个主分支,我们检查我们感觉良好的变化.这是有效的,但直到我们检查一个突破性的变化.
有没有人对小型团队有最喜欢的git分支策略,满足以下要求:
理想情况下,我很乐意看到一个开发人员处理新bug的分步过程
我尊重的许多数据分析师都使用版本控制.例如:
但是,我正在评估采用像git这样的版本控制系统是否值得.
简要概述: 我是一名社会科学家,他使用R来分析研究出版物的数据.我目前不生产R包.我的项目R代码通常包括几千行代码,用于数据输入,清理,操作,分析和输出生成.出版物通常使用LaTeX编写.
关于版本控制,我已经阅读了许多好处,但它们似乎与独立数据分析师的相关性较低.
采用版本控制还涉及几个潜在成本:
但是,我仍然觉得我错过了什么.关于版本控制的一般指南似乎比数据分析师更多地针对计算机科学家.
因此,特别是在类似于上面列出的情况下的数据分析师:
维护代码时要遵循的最佳实践和经验法则是什么?在开发分支中只有生产就绪代码,或者开发分支中是否有未经测试的最新代码,这是一种好的做法吗?
你们如何维护开发代码和生产代码?
编辑 - 补充问题 - 您的开发团队是否遵循"尽快提交 - 通常 - 甚至是代码包含 - 次要错误或不完整"协议或"提交 - 只有完美的代码"协议,同时将代码提交给开发分支?
哪个是存储源代码版本的系统的正确名称,如SVN或TFS?
我一直称它为源代码控制,但像维基百科这样的地方称它为版本控制?
为了使像这样的更复杂的网站有两个标签?
我想在使用vcs或dvcs时学习其他人的工作流程.
请描述您处理以下任务的策略:
您可以随意组织您的答案,不按任务分组,但按照您认为相关的任何分组,但请通过VCS/DVCS进行组织(请不要混用它们).
谢谢.
我可以看到为什么分布式源代码控制系统(像Mercurial这样的DVCS)对开源项目有意义.
但它们对企业有意义吗?(通过集中的源控制系统,如TFS)
DVCS的哪些特性使其更适合或更适合具有许多开发人员的企业?(通过集中式系统)
场景:我正在尝试在git下获取我的unix点文件.我必须在(至少)cygwin环境和一些标准的Linux发行版(ubuntu和opensuse)之间工作,并且我有特定于cygwin的文件/代码行.由于我不想检查无用的文件或者不得不处理我的dotfiles中的大量案例,我正在为我的每个环境创建分支.但是我做的大部分编辑对所有环境都是通用的,所以几乎每次我提交时我都需要将该更改传播到我的所有分支.
所以基本上我有几个几乎相同的分支,除了一些提交,并且我需要在所有分支中进行大多数提交.
问题:如果有的话,推荐的git工作流程是什么?或者,对于我的场景,是否有更好的设置(不使用多个分支?)?
[我尝试过采摘樱桃,但这涉及到相当多的工作,更不用说这里的所有重复提交以及保持我的分支同步的噩梦.]