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

Ari*_*iod 6 git git-flow

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

Joh*_*don 7

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

在我看来,你将拥有主分支上的所有"基本"代码.所有客户都有一个客户特定分支.小心并知道您的更改在哪里.

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

重新定位可能会让您感到困惑,直到您看到它的实际效果.

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

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的更改.

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


Pet*_*oes 2

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