我是否需要在" git flow"中使用git?本地?

时间:2017-03-24 12:28:59

标签: git git-flow

我怀疑如何在本地使用git flow,我是否需要这样做 一点都不使用远程git流程,我想一切都很清楚:

1)创建远程存储库,这使得一个主分支 2)从主人那里做出devel分支 3)所有开发人员将远程仓库克隆到他们的本地计算机并制作一些员工: 添加,提交更改,并推送到远程开发分支,然后"存储库所有者"将远程开发分支一次又一次地合并到主服务器

但是本地存储库怎么样?我需要在本地创建某种git流吗?制作我自己的开发和主分支,在那里我将对我的本地开发分支进行更改,然后将其合并到本地主服务器,然后才推送到远程开发分支。

使用本地远程存储库的正确行动队列是什么?

因为我认为如果我克隆远程仓库,我会掌握并开发远程仓库已经拥有的分支。

由于

2 个答案:

答案 0 :(得分:2)

你对git flow的描述遗漏了一些非常的重要细节;您可能想要查看其工作原理的文档。

在任何情况下,在gitflow中,主分支是所有存储库中的主分支。它最重要的是包含仅发布版本。在任何特定时刻,主人的HEAD应与您当前的生产版本相匹配;这就是为什么你不直接在master上工作的原因。开发分支从master分支,任何修补程序分支也是如此。关于合并到master的重要之处不在于WHO做了什么,因为应该完成哪些合并:只有完成的发布和修补程序分支应该合并到master中,反映出新版本。

开发分支是所有回购的开发分支。它反映了项目的累计可释放(但不一定是已发布)的工作。您可以创建跟踪开发分支的HEAD的中央开发和/或qa环境。在任何时候开发都应该包含一个干净的构建,所以就像master一样,你不直接在develop分支上工作。发布分支从开发分支,特征分支也是如此。

如果要开发功能,可以创建功能分支。这个分支可能永远不会被推到团队的原始回购中;由团队决定是否要共享这些分支,而不是共享,或者由具体情况决定开发人员。该分支包含正在进行的工作。当您将其转换为完全实现其创建功能的干净构建状态时,将其合并回develop(然后可以将其删除)。

Etc等。

关键是 - 如果您使用的是gitflow,那么您正在使用gitflow。本地仓库中的分支(可能是特征分支除外)应该跟踪原点中的相应分支。

您似乎想知道一种方法,您将原始开发分支克隆为本地主数据库,然后您是否应该围绕该新主服务器本地复制gitflow(这是真正开发的)?好吧,我想你可以发明这样的工作流程,但为什么呢?这似乎是不必要的复杂性,事实上,由于未能复制已经存在于原点的gitflow结构,它需要远离开发人员的有用工具。

是否可以让子团队在本地仓库中进行协作,然后这些团队可以作为个人开发人员与原始仓库相关联?嗯,好的,但是(1)在这种情况下,“本地”应该是一个中间体,从“真实”起源克隆,但个别开发者仍然克隆; (2)你真的不需要这样做。

如果您和其他开发人员通过配对编程以外的方式在功能分支上进行协作,并且您确定这不是因为您应该执行不同的操作(例如将功能分解为两个功能,或者只是将程序配对) ,然后你可以共享功能分支(至少在你们两个之间,即使不是通过原点),为个别工作创建本地分支,并协调合并(或rebase)到功能分支。但这不需要“子gitflow”的形式。

答案 1 :(得分:0)

git flow与远程存储库无关。使用git,您甚至不需要远程存储库,您可以单独在本地存储库中完成所有操作。但git flow对项目的所有存储库都有效。您通常在其上开发新功能的功能分支e。 G。不一定会被推送到中央存储库,而只是在本地存在,或者可能由一些开发人员直接在他们的存储库之间共享。