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.
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
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*
We developed some functionality (changes in *core module*) that is common
to all companies
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 firstname.lastname@example.org.
To unsubscribe from this group, send email to
For more options, visit this group at