【问题标题】:We forgot to branch, how do we proceed?我们忘记了分支,我们如何进行?
【发布时间】:2012-09-05 19:41:46
【问题描述】:

所以我们有 4 个开发人员,我们称他们为 dev1、dev2、dev3 和 dev4。

我们创建了一个 github 帐户,dev1 将代码推送到 github,所有其他开发人员从 github 中提取并开始着手进行不同的修补程序和改进。

我们没有使用分支,所以我们都使用master分支。

然后我们发现了分支并意识到我们可能应该分支,以便更容易合并内容。

如果我们想从现在开始使用分支,最好的做法是什么?这就是我的想法。

  1. 在每个开发者的本地副本上创建分支
  2. 提交并推送代码
  3. 每个开发者会有 4 个分支
  4. 以某种方式合并它们

这行得通吗?我现在担心的是,由于所有的开发者都做了一些工作并改变了他们的本地副本,如果他们开始一个新的分支,他们的 master 分支已经不同于 github 上的 master 分支。

我们如何以最少的努力进行?

【问题讨论】:

  • 你们分支机构的目的是什么?您的开发人员是否朝着不同的目标/版本努力?
  • 是的,他们正在朝着不同的目标努力,他们在同一系统的不同组件上工作,我理解的目的是让人们更容易理解哪个文件来自哪个分支。更易于管理和合并
  • 看看A successful Git branching model。当我第一次阅读它时,我可以看到那里有些东西,尽管我承认我几乎没有理解任何东西。 ;-) 但是现在,在获得更多 git 经验之后,这似乎是一个不错的主意。也许有一天我会真正使用它。 ;-) #doctorhealthyself
  • 好的,不同的目标是什么意思?如果是同一个系统,不同“分支”的终端产品是不是要分开管理和发布?
  • @CharlesBailey,这是一个大项目,每个开发人员都将被分配工作,他们的更改将作为一个系统持续发布。假设它就像 facebook、stackoverflow 或 linux 发行版,它们有一个最终产品,但开发人员团队在开发它们。

标签: git github


【解决方案1】:

如果您的所有开发人员都在开发同一个系统的同一版本,则没有理由创建额外的分支。

最简单的工作流程是让您的开发人员在他们的本地克隆中提交他们的工作,合并来自共享存储库的任何更改,测试此合并的结果并推送回共享主库。

如果您正在维护一个已发布的版本并同时处理未来的版本,或者您有一个长期的重构或正在开发的功能,并且出于稳定性原因想要屏蔽主分支,您可能会考虑分支。

否则,没有必要为了分支而建立分支。您只会为自己进行额外的管理和维护工作。

【讨论】:

    【解决方案2】:

    开发人员的个人master 分支与上游主分支不同不是问题。开发人员都应该从他们自己的 master 中创建分支,然后永远不要再碰他们自己的 master 分支(甚至可能删除它们)。

    【讨论】:

    • 所以每次他们需要处理新的东西时,他们都会创建一个分支,推送它,然后有人会将它合并到主分支中吗?然后他们拉(更新)他们的主分支,以便他们拥有最新的合并稳定代码?
    • @user893730:是的。或者他们自己将其合并到 master 中,这取决于您是否希望在合并之前进行代码审查。
    猜你喜欢
    • 1970-01-01
    • 2022-06-25
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    相关资源
    最近更新 更多