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

标签 git git-flow

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

最佳答案

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

在我看来,您会在 master 分支上拥有所有“基本”代码。所有客户都会有一个客户特定的分支。请小心并了解您的更改位置。

每隔一段时间,请确保您对客户端分支进行 rebase ,基本上将它们提升到基本代码,然后在其上重放所有特定更改。

在您实际看到 rebase 之前, rebase 可能会让人非常困惑。

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

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

在这一点上,只要没有冲突,分支就会与 master 保持同步并且有客户特定的更改。

关于Git-flow 和特定于客户端的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10242932/

相关文章:

git - 将 big bzr 存储库转换为 git,会发生什么?

javascript - Heroku Git Push Master 错误

git - 在 Github 上公开分享私有(private)仓库的一部分

git - 修补程序分支的单独环境?

Git 流程初始提交

git - 如何克隆一个 git-flow 风格的 git 仓库?

windows - 在git中移动文件夹

git - 切换分支时机器崩溃

git - 发布分支 merge 后,为什么master 1 commit领先于develop?

GitFlow : when to delete or freeze feature/release branches?