6

您建议如何在Git-flow或一般的 Git 中管理特定于客户端的功能和更改请求?特定于客户端的功能是否应该位于专用于客户端的单独分支中?(每个客户端都有自己的开发分支。)还是应该在单独的存储库中?(每个客户端都有一个专用的存储库,主存储库是我们的主存储库。)

4

2 回答 2

7

听起来你有一个所有客户端都使用的代码库,然后你有一些针对客户端特定功能的“黑客”。

在我看来,您将拥有 master 分支上的所有“基本”代码。所有客户端都有一个特定于客户端的分支。小心并知道您的更改是在哪里进行的。

每隔一段时间,确保你重新定位你的客户端分支,基本上将它们带到基本代码,然后在此之上重放它们的所有特定更改。

重新定基可能会非常令人困惑,直到您看到它在起作用。

为了清楚起见,使用顺序提交号。提交在现实生活中不是数字

大师在提交 10
 \
   分支有提交 10、11、12、13、14、15(注意它也有提交 10)
|
Master 提交 16、17


当你变基时:
  大师有10、16、17。
  分支有 10, 16, 17, 11, 12, 13, 14, 15

这里的顺序非常重要。Rebase 将分支回退到 10,应用 16 和 17,然后重放其对 11、12、13、14 和 15 的更改。

此时,只要没有冲突,分支与 master 是最新的,并且具有客户端特定的更改。

于 2012-06-05T20:50:43.990 回答
2

我将为您的基础和客户创建一个单独的存储库。客户将有一个基地,该基地将有一个远程分支,作为您的基地。当客户需要新版本时,这种方式会容易得多。如果您将所有客户端放在一个存储库中,则必须在启动 git flow 发布之前手动更改集成/开发人员分支。这将限制您为不同客户处理多个版本的能力。

于 2012-06-11T19:51:42.010 回答