具有Git分支的开发人员工作流

具有Git分支的开发人员工作流,git,Git,我正在读这篇文章 现在我们有一个中央存储库(源repo)。每个人都在克隆这个分支(从技术上讲,创建一个分支),然后创建自己的分支 我已经习惯了svn,这是一种做事情的老方法,作为一个优秀的小开发者,你需要经常检查master。然而,对于Git,我不太清楚我们是否应该继续这样做 假设我有一个分支离开了原始主机,我的同事也有他自己的分支用于其他功能。我希望我们双方都经常做出承诺,这样我们就能得到对方的改变 但这是否意味着每次我们做出承诺时,我们都应该合并回master?或者,我是否应该直接从他的分支

我正在读这篇文章

现在我们有一个中央存储库(源repo)。每个人都在克隆这个分支(从技术上讲,创建一个分支),然后创建自己的分支

我已经习惯了svn,这是一种做事情的老方法,作为一个优秀的小开发者,你需要经常检查master。然而,对于Git,我不太清楚我们是否应该继续这样做

假设我有一个分支离开了原始主机,我的同事也有他自己的分支用于其他功能。我希望我们双方都经常做出承诺,这样我们就能得到对方的改变

但这是否意味着每次我们做出承诺时,我们都应该合并回master?或者,我是否应该直接从他的分支中退出,我们只有在说它已经准备好发布(或者准备好推到QA或其他什么)时才合并回master


另外,您如何创建一个开发人员分支,从本质上说,我们可以将我们的分支合并到某种开发人员存储库中?我不明白这是怎么回事,将环境与origin master隔离,作为您也不需要修改的东西(这是一个很简单的问题)?因此,对于开发人员来说,您是否在原始主机上创建了一个名为“开发”的新分支,然后开发人员将其更改合并回开发分支,然后当时间到来时,我们认为我们的开发分支是稳定的,将其合并回原始主机,并将其推送到Jenkins,Jenkins构建并运行自动单元测试?您将如何将您的开发部门推广到詹金斯?我迷路了。

你应该尽可能多地合并回master。例如,许多公司都有一个工作流,其中用户编写代码,在本地提交代码,然后发布供审查。如果需要进行更改,作者将进行更改,进行另一次提交,然后再次发布以供审阅。接受后(通常需要0-2个修订版),开发人员将其合并到主版本中

很少合并到master是一件非常非常糟糕的事情,因为这意味着会有大量的合并冲突。不要那样做

您询问“开发人员分支”;这就是师父的用意。不要使用master作为发布分支,而是使用master作为开发分支,无论何时需要发布,都要创建标记。这些类似于分支,但永久指向给定的存储库状态


如果您需要与另一个尚未准备好的开发人员共享工作(即尚未审查),则可以创建另一个远程分支(除了master),并使用该分支

回答第一点-频繁合并到master取决于您的工作流程。Git有很多不同的工作流程;Git流是另一种方法。它有它的优点和缺点,这取决于您的团队如何集成、测试和部署代码

现在,听起来你有一个主分支和一个分支,在它被推到主分支之前,你自己开发它。这对于您的工作流程可能很好,但有几件事您需要了解:

  • 你正在做的工作应该与其他人的工作隔离。如果您发现自己处于一种通常不是这样的情况下,您需要进一步分解工作,直到它可以合理地隔离
  • 仅当功能完成时,才应合并到主控不要合并不完整的代码。
  • 如果你需要一个地方来整合你和其他同事所做的工作,那么这更像是一个沟通问题;如果主人是做这件事的分支,那么就这样吧
Git流背后的思想是,它接受master中当前的任何内容,并将其视为生产就绪代码;也就是说,master上的代码就是当时生产中的代码。存在其他工作流,其中使用表示这一事实,因此只有最后标记的主控提交才是生产中的活动

因为我对您的测试环境一无所知,所以我不能说在master上创建一个新分支(专门用于集成点)是更容易还是更难。若您不希望主控中的提交表示可部署代码,那个么继续直接合并到主控中是可以的(但要标记您的发布)

但是,我将对单独的分支这样说:如果您确实想做单独的分支,那么您将希望采用Git流背后的大部分原则。看看它对你和你的团队有多有效

  • master始终是可部署的
  • 发展总是可以掌握的
  • 主题分支总是适合于开发(并且应该是)
  • 此外,作为一般规则,所有分支都应该通过Jenkins进行测试。如果不能合理地测试所有分支,那么应该测试主要的集成点

是的,所以和往常一样,经常向master提交。那么你是说博客文章很糟糕吗?大多数情况下,是的:p基本上,他的
develope
分支应该是
master
的分支,标签应该用于发布(这就是它们的设计目的,因为它们不能移动)。不过,您仍然可以基于它们的分支,因此也可以使用分支来制作修补程序。此外,我编辑了我的帖子,添加了与其他未准备好
master
的开发人员共享工作的信息。他的工作流程并不可怕,因为他还有
develope
分支。如果人们把所有的树枝都藏起来,直到发布的时候(我以为你是在问这个),那就太可怕了。