2015-01-29 3 views
2

У меня есть проект, над которым я сейчас работаю, используя метод GitFlow. Недавно мы получили клиента, в котором они будут использовать нашу базу кода с некоторыми изменениями, сделанными для них.Управление несколькими версиями кода в Git

Я хочу, чтобы их код автоматически обновлялся с помощью исправлений и функций, реализованных в нашей главной ветви, при этом все еще сохраняя свой код и изменения не мешали главной ветке.

Так в основном исправление -> сливается с мастер/клиент филиала

Кроме того, есть ли способ лечения код клиента как отдельный репозиторий, так что ветвь развития может быть установлен с ним, что бы даже лучше, но он также должен иметь возможность получать изменения в ведущей ветке.

+0

Ладно, так , каков твой вопрос? – jthill

+0

@jthill Что было бы лучшим методом для этого? – Jamooka

+2

Вы, по сути, спрашиваете, как использовать Git, если не как использовать систему управления версиями в целом. – chepner

ответ

1

Использование «вилки» вашего обычного репозитория звучит как отличный способ пойти, на самом деле. Это основа того, как работает GitHub.

На вашем центральном сервере Git:

mkdir clients_repo.git 
cd clients_repo.git 
git init --bare 

Сделайте начальную «вилку» вашего официального репозитория, который будет только принести над «мастер» ветвь:

git clone [email protected]/official_repo.git 
cd official_repo 
git remote add clients_repo [email protected]/clients_repo.git 
git push clients_repo master 

Вы можете сделать любой количество филиалов в clients_repo вы хотите.

Работа на Repository Клиента:

git clone [email protected]/clients_repo.git 
cd clients_repo 
git remote add upstream [email protected]/official_repo.git 
git fetch upstream 
# create branches, edit, commit, merge, whatever 

Когда приходит время, чтобы интегрировать изменения с вашего официального репозитория в клиента, просто объединить upstream/master в свой clients_repo мастер филиала:

cd clients_repo 
git checkout master 
git fetch upstream 
git merge upstream/master 
# Resolve conflicts and commit if necessary 
git push origin HEAD 
Смежные вопросы