Firstly, let me introduce general architecture of a project.

It is an *hierarchical*. We develop server application for our customers. 
It is stored on *main server*.

Say, *local server 1*, *local server 2*, ..., *local server n* are the 
servers (main application instances) in different companies. Each company 
has one local server. Mostly all local servers have the same functionality 
(say, core module), but each company *can have it's own*. As an idea it was 
decided to solve this problem via *git branching*.

Let's consider some cases.

*Case 1*
One company (*local server x*) wants some specific feature that is needed 
only in that company. Following the logic our of idea of branches we do the 
following steps:

   1. create git branch on *main server*
   2. develop needed functionality for that server
   3. create git branch (*branch y*) on *local server x*
   4. push changes to *main server*
   5. switch *branch y* on *local server x*
   6. switch to *master branch* on *main server*

*Case 2*
We developed some functionality (changes in *core module*) that is common 
to all companies

*Case 3*
We developed some functionality that is common only to some companies

Want to hear your advises about how to solve "*Case 2*" and "*Case 3*".

You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To view this discussion on the web visit
To post to this group, send email to
To unsubscribe from this group, send email to
For more options, visit this group at

Reply via email to