所以我听说过使用Git 的每个功能分支工作流程,我也读到了为什么这可能是一个坏主意的一些原因.
我真正的问题是 - 如果我正在开发一个小功能(如简单的正则表达式时间解析器),在将此分支合并回主干之后,该分支会发生什么(或应该发生什么)?它只是坐在那里吗?因为我为那个非常具体的功能创建了它,所以我想不出有一个原因我必须回去使用分支.我应该以某种方式将这个分支标记为已经不存在,或者我只是继续前进而忘记它?
谢谢
Sch*_*ern 13
当我使用功能分支时,我喜欢保留在合并后在分支中开发功能的事实.这使得浏览历史变得更加容易.它按功能或错误对更改进行分组,使您更容易了解最重要的事情:为什么要进行更改.
这就是为什么当我合并时,我故意禁用快进git merge --no-ff.这保留了历史中分支的结构.然后我可以自由删除分支标签(git branch -d branch_name),合并点包含分支名称,并清理分支集.
相反,当在分支机构上工作时,我更喜欢重新定义上游分支.这使得分支的历史保持良好和干净,没有大量的上游合并噪声和冲突解决方案.我通常会在合并之前对上游进行rebase以使集成工作更容易(作为分支作者,我可以修复冲突和破坏测试)以及生成的合并清理器.
这种方法保留了分支的历史,同时防止不再发展旧分支堵塞事物.它使用gitk或GitX可视化历史非常有用.
我同意您链接的文章中的基本要点,因为您获得越来越多的大型功能分支,同时处理冲突和集成问题的可能性越来越大.使它们如此有用的隔离成为一种负担.其中一个解决方案是没有大型的旧功能分支.如果您可以将功能分支破碎成可以完成和集成的较小部分,那么您可以避免此问题.这通常有许多其他原因,例如必须审查代码的糟糕的口水.
如果可以将功能分支连续集成到主线中,则功能分支必须具有有用的,工作的,经过测试的,记录的工作.如果它有,那么那些可以切成他们自己的分支.
我自愿承认我可能正在阅读太多内容,但文章中可能存在的缺陷之一是分支是以人而不是功能命名的.这意味着每个分支都是"Jim正在处理的",而不是"添加蓝色小部件".这意味着一些发展问题......
其中很多不是技术问题,而是社会问题.其中大部分都可以通过强大使用与版本控制密切相关的优秀问题跟踪器来解决,例如Github.主要变化是:
遗憾的是,大多数项目的错误跟踪政策都不鼓励第二个问题.在报告错误之前准备补丁的冲动非常强烈.
良好的分支机构管理需要良好的社交能力,这是一个良好的问题跟踪器,具有强大的版本控制集成和热情的政策.
| 归档时间: |
|
| 查看次数: |
1241 次 |
| 最近记录: |