2016-08-01 2 views
1

У меня есть 3 папки (каждый из git repo), скажем DevUAT и Prototype. Я хочу, чтобы моя ветка Dev была мастером, и я хочу, чтобы эти репозитории отображались как ветви.Как добавить 2 других репозитория git в качестве ветвей для моего репо?

До сих пор я думал о том, чтобы связать удаленный доступ к каждой папке (с ее git внутри), а затем каким-то образом объединить их с тегом --unrelated. Как мне сделать это для 3-х филиалов? Я пытался, но никто не работал.

Чтобы уточнить, когда я git branch в папке Dev, я хочу видеть masterPrototype и UAT в apppear в качестве филиалов. Заранее спасибо!

+0

Что вы описываете, называется 'git submodule' –

ответ

0

версий Если вы хотите добавить другие репозитарии, как ветки в существующем Dev мерзавца репо, то вы можете сделать следующее

cd <Dev Path> 

git remote add UATremote <Path to UAT Folder Repo> 
git fetch UATremote 
git checkout -b UAT UATremote/master 

git remote add PROTOremote <Path to ProtoType Folder Repo> 
git fetch PROTOremote 
git checkout -b Prototype PROTOremote/master 

И затем, возможно зачистить пультов ДУ:

git remote rm UATremote 
git remote rm PROTOremote 
+0

Да, это именно то, что я хочу делать и что я сделал до сих пор. Если я делаю «git checkout -b UAT HEAD», это плохо? Я сделал ГЛАВУ для каждого из них, я думаю, что именно здесь я ошибся. – HiWorld

+0

Неплохо, это зависит от того, чего вы хотите достичь. Если вы запустите 'git checkout -b UAT HEAD', тогда будет создана новая ветка и выйдет из нее код, где бы ни находился ваш текущий локальный HEAD. Вместо этого я подозреваю, что вы хотите, чтобы новые ветки использовали код из других репозиториев git? Вы можете сделать это, используя свои ведущие ветки в свою папку «Dev». I.e: 'git checkout -b NewBranch myRemote/master' – nightherb

+0

Также вы можете запустить' git branch -d UAT', чтобы удалить ветвь, созданную вами до – nightherb

0

Вы просто добавить новый удаленный

git remote add remote2 <url> 

и теперь вы можете оформить любой филиал сформировать любой данный удаленный в репозиторий.

+0

Как мне сделать заказ? Просто 'git checkout remote2'? – HiWorld

+0

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

1

Хотя подмодули являются основным ответом, я рекомендую вам не делать этого, потому что я думаю, что вы пытаетесь перевернуть инструмент неправильно.

Вы хотите разные условия, да, что характерно для большинства магазинов, в том числе тот, в котором я работаю, и все остальные, которые я знаю.

Я рекомендую вам иметь одну ведущую ветку и один репозиторий.

При отпускании различных версий вы можете помечать релизы с версией, используя общую систему

+0

Я не могу изменить рабочий процесс компании, извините. – HiWorld

+0

О да, вы должны внести свой вклад, чтобы изменить его, если у вас есть ощущение, что ваша компания делает что-то неправильно и производит много отходов. Не стесняйтесь смотреть на инструменты развертывания также, где пакеты создаются один раз и развертываются в каждой среде. Это лучше и более устойчивая практика. – Philippe

+0

Да, вы не можете изменить рабочий процесс компании. Вы можете сделать это. Не 2-минутный разговор, а полный «Я верю в качество и основные принципы проектирования». Делайте это частным образом 1 на 1 с полномочиями людей. В то же время отчаянно искать новую работу и использовать одну и ту же причину, когда ее спрашивают, почему нужно оставить свою текущую работу/то, что вы ищете на новой работе, - ваше отношение будет уважаться в профессиональных магазинах. –

0

Я б elieve вы описываете использование submodules. Вы используете их в сценариях, когда хотите сохранить репозиторий в другом репозитории. Такое требование может возникнуть, если вы хотите сохранить библиотеку или APi, которые вы используете в проекте, обновленном для всех участников.

Для того, чтобы добавить submodule в текущем хранилище использовать

git submodule add <url> 

Где в URL вы захватить из GitHub или любой другой. Помните submodules просто репозиториев так рабочий процесс применяется ... Для того, чтобы начать работать на вашем репо в репозиторий вам нужно перейти в нее, как вы обычно делаете в bash

ОЧЕНЬ ВАЖНО

При работе с подмодулями вы НЕ начать на ветке автоматически. Это должно быть сделано вручную, поэтому не забудьте сделать git checkout master, когда вы находитесь в своем submodule до начала любой работы ...

+0

Это очень интересно. – HiWorld