we deal with something similar at work, so here are my two cents.
I'd call A "upstream" and B "master", and hold them as separate branches.
Whenever a change is made to upstream, I'd merge that into master. I'd use
merge to avoid getting into the same merge conflicts again and again
(unless you want to use git-rerere, which can help in such cases. Then I'd
also merge master's changes to the different customer branches. All this in
one repository, because merging between repos is not really straightforward.
To make things clear, you don't have to have a master branch, you could
call it orange, kitten, potato, or whatever you like (real life examples).
master is just a convention due to the fact that this is the default branch
On Feb 3, 2016 11:44 PM, "Gintautas" <gintautas.petkevic...@gmail.com>
> Hey All,
> I've read various git tutorials but still have some open questions
> regarding how repositories & branches should be used.
> Here's the situation i have:
> I have a code base "A" which is maintained by external partner. I do
> receive source code updates every few months for it.
> Based on the code base "A" I've built another product "B" which I develop.
> Then, I use product B as a base for my customers. But each customer has
> it's own small adjustments. Therefore, I maintain separate code base for
> each customer.
> Visually it would look something like this:
> / / \ \
> C D F G
> Now to the problem:) Every time changes occurs on code base "A" or "B", I
> have a daunting task to merge all changes to other code bases. I am looking
> for a way how to leverage Git to ease this code merge task for me.
> By reading tutorials, I learned a lot. But, still I have fundamental
> question of how my repository/branch structure should look like. Here are
> my questions:
> - Do I need to have repository for each code base?
> - If yes, how I can perform code merges between different
> - Should I have one repository with multiple branches?
> - what should be my master branch? A or B?
> - how should the merge performed? by using *rebase*?
> - are branches stored on the separate folders?
> - Is there another (better) way for solving the problem?
> You received this message because you are subscribed to the Google Groups
> "Git for human beings" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to git-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "Git
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email
For more options, visit https://groups.google.com/d/optout.