2015-03-19 3 views
0

Я работаю над проектом, где мы достигли рубежа. Мой репозиторий git обновлен, и все работает правильно. Наш клиент обновил их api, и мы не уверены, как это повлияет на наш код.Git - Как добавить локальный репозиторий в новый филиал

Что я хочу сделать, это создать ветку (уже сделанную) и загрузить полный репозиторий в ветку. Таким образом, у меня будет дублированный проект, один в главном и один в новом филиале. Затем я буду работать и передавать на новое отделение, оставив мастера нетронутым. Поэтому, продвигаясь вперед, для каждого выпуска я могу сделать то же самое, поэтому мы можем вернуться к предыдущей ветке, если есть какая-то проблема.

Может кто-нибудь сказать мне, как это сделать, пожалуйста. Я использую Git, и я работаю через терминал Mac.

Я рассмотрел соответствующие вопросы по этому вопросу, но я не вижу требуемую информацию или, возможно, пропустил ее.

+0

«загрузить полный репозиторий в отрасли» не имеет смысла меня. У вас есть репозиторий, он имеет филиалы. Вы не можете поместить репозиторий в ветку, это наоборот. – Gauthier

+0

Возможно, вы в прошлом работали с меркуриальными? Там ветви хранятся в разных папках, IIRC. Не так в git. У вас есть ветка, когда вы проверяете, что он обновляет ваши локальные файлы. Нет дублирования. – Gauthier

ответ

0

Скажем, отрасль, которую вы создали в основном репо, - <main_repo_new_branch>. Затем будут выполняться следующие шаги:

cd <local_repo_dir> 
git remote add mainrepo <main_repo_dir> 
git push mainrepo <local_repo_branch>:<main_repo_new_branch> 
cd <main_repo_dir> 
git checkout <main_repo_new_branch> 
1

Вы не загружаете репозиторий в филиал.

У вас есть код в репозитории, а в репозитории есть ветви. Нет дублирования, но вы можете получить (checkout) мастер или ветку, чтобы установить ваши рабочие файлы в нужную вам версию: мастер для нетронутых изменений, ветвь для ваших последних изменений.

Всегда хорошо делать, когда вы достигли рубежа, чтобы помечать фиксации:

$ git tag v1.0 

Затем оттуда вы можете создать ветку для работы по интеграции нового API

$ git checkout -b client_api_update 

работы и зафиксировать в своем филиале. Это не влияет на содержание в master, которое вы можете проверить, когда хотите получить свои рабочие файлы так, как они были в вашей версии веха (или проверить тег).

Когда интеграция нового API будет сделано, пришло время объединить вашу ветку к мастеру, чтобы освободить поддержку нового API:

$ git checkout master 
$ git merge client_api_update --no-ff 

--no-ff не является обязательным, но я думаю, что это делает для более элегантная история.

Вы на новой вехой, так тег:

$ git tag v1.1 

Вот как ваша история будет выглядеть так:

/- v1.0   /- v1.1 
A---B------------------G - master 
    \---C---D---E---F-/ - client_api_update 
+0

Взял слова прямо из моего рта и +1 для -no-ff tip – mephisto

Смежные вопросы