Git-flow和特定于客户端的功能

时间:2012-04-20 08:42:41

标签: git git-flow

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

2 个答案:

答案 0 :(得分:6)

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

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

每隔一段时间,请确保您重新设置客户端分支,基本上将它们添加到基本代码中,然后在此基础上重放所有特定更改。

重新定位可能会让您感到非常困惑,直到您看到它为止。

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

Master is at commit 10
 \
   Branch has commits 10, 11, 12, 13, 14, 15 (notice it has commit 10 as well)
|
Master commits 16, 17


When you rebase:
  Master has 10, 16, 17.
  Branch has 10, 16, 17, 11, 12, 13, 14, 15 

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

此时,只要没有冲突,分支就会与主服务器保持同步并且具有客户端特定的更改。

答案 1 :(得分:2)

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