具有Git分支的开发人员工作流
我正在读这篇文章 现在我们有一个中央存储库(源repo)。每个人都在克隆这个分支(从技术上讲,创建一个分支),然后创建自己的分支 我已经习惯了svn,这是一种做事情的老方法,作为一个优秀的小开发者,你需要经常检查master。然而,对于Git,我不太清楚我们是否应该继续这样做 假设我有一个分支离开了原始主机,我的同事也有他自己的分支用于其他功能。我希望我们双方都经常做出承诺,这样我们就能得到对方的改变 但这是否意味着每次我们做出承诺时,我们都应该合并回master?或者,我是否应该直接从他的分支中退出,我们只有在说它已经准备好发布(或者准备好推到QA或其他什么)时才合并回master具有Git分支的开发人员工作流,git,Git,我正在读这篇文章 现在我们有一个中央存储库(源repo)。每个人都在克隆这个分支(从技术上讲,创建一个分支),然后创建自己的分支 我已经习惯了svn,这是一种做事情的老方法,作为一个优秀的小开发者,你需要经常检查master。然而,对于Git,我不太清楚我们是否应该继续这样做 假设我有一个分支离开了原始主机,我的同事也有他自己的分支用于其他功能。我希望我们双方都经常做出承诺,这样我们就能得到对方的改变 但这是否意味着每次我们做出承诺时,我们都应该合并回master?或者,我是否应该直接从他的分支
另外,您如何创建一个开发人员分支,从本质上说,我们可以将我们的分支合并到某种开发人员存储库中?我不明白这是怎么回事,将环境与origin master隔离,作为您也不需要修改的东西(这是一个很简单的问题)?因此,对于开发人员来说,您是否在原始主机上创建了一个名为“开发”的新分支,然后开发人员将其更改合并回开发分支,然后当时间到来时,我们认为我们的开发分支是稳定的,将其合并回原始主机,并将其推送到Jenkins,Jenkins构建并运行自动单元测试?您将如何将您的开发部门推广到詹金斯?我迷路了。你应该尽可能多地合并回master。例如,许多公司都有一个工作流,其中用户编写代码,在本地提交代码,然后发布供审查。如果需要进行更改,作者将进行更改,进行另一次提交,然后再次发布以供审阅。接受后(通常需要0-2个修订版),开发人员将其合并到主版本中 很少合并到master是一件非常非常糟糕的事情,因为这意味着会有大量的合并冲突。不要那样做 您询问“开发人员分支”;这就是师父的用意。不要使用master作为发布分支,而是使用master作为开发分支,无论何时需要发布,都要创建标记。这些类似于分支,但永久指向给定的存储库状态
如果您需要与另一个尚未准备好的开发人员共享工作(即尚未审查),则可以创建另一个远程分支(除了master),并使用该分支 回答第一点-频繁合并到master取决于您的工作流程。Git有很多不同的工作流程;Git流是另一种方法。它有它的优点和缺点,这取决于您的团队如何集成、测试和部署代码 现在,听起来你有一个主分支和一个分支,在它被推到主分支之前,你自己开发它。这对于您的工作流程可能很好,但有几件事您需要了解:
- 你正在做的工作应该与其他人的工作隔离。如果您发现自己处于一种通常不是这样的情况下,您需要进一步分解工作,直到它可以合理地隔离
- 仅当功能完成时,才应合并到主控不要合并不完整的代码。
- 如果你需要一个地方来整合你和其他同事所做的工作,那么这更像是一个沟通问题;如果主人是做这件事的分支,那么就这样吧
- master始终是可部署的
- 发展总是可以掌握的
- 主题分支总是适合于开发(并且应该是)
- 此外,作为一般规则,所有分支都应该通过Jenkins进行测试。如果不能合理地测试所有分支,那么应该测试主要的集成点
develope
分支应该是master
的分支,标签应该用于发布(这就是它们的设计目的,因为它们不能移动)。不过,您仍然可以基于它们的分支,因此也可以使用分支来制作修补程序。此外,我编辑了我的帖子,添加了与其他未准备好master
的开发人员共享工作的信息。他的工作流程并不可怕,因为他还有develope
分支。如果人们把所有的树枝都藏起来,直到发布的时候(我以为你是在问这个),那就太可怕了。