我开发了一个网站,现在必须为几个客户克隆。每个客户都希望自定义超出视觉方面,并且不能通过配置文件,首选项或类似的东西来处理。
在这种情况下,我想在Git中使用公共代码保存主存储库,然后为每个客户端保留一个分支。这样,我可以在每个客户端(分支)中进行单独更改,并共享常见更改(使用主服务器)。
这种做法是否正确?除了远程分支之外,还有其他方法可以解决这个问题吗?
谢谢!
答案 0 :(得分:3)
这样可行。
您必须小心合并 - 您只能从公共代码合并到客户端代码,但您可以挑选从客户端到常见的个别更改。您还需要了解将公共分支中的代码引入客户端分支的策略 - 如果没有太多客户端分支代码,您可能最好在公共端之上重新设置客户端更改每次要更新时的代码;通过更多更改,合并公共代码会更容易。
如果您采用变基法,请查看git rerere
,这有助于您经常处理变基。
答案 1 :(得分:1)
如果您的存储库的结构使得所有公共代码都位于其自己的单独目录中,则可以使用git-submodules解决此问题。
如果是这样的话,相反,所有客户端自定义都存在于他们自己的子目录中,我认为可以使用子树合并策略来优雅地解决这个问题。