2016-07-21 3 views
0

Что я хочу сделать, так это настроить удаленный сервер на gant. Я хотел бы создать другое рабочее пространство для каждой ветви (включая master), чтобы одновременно обслуживать разные версии. Зачем? Я настраиваю git-сервер на локальном веб-сервере с целью тестирования перед загрузкой веб-страниц в производственные среды, а когда разработчику необходимо изменить код, я бы хотел создать ветвь для этой разработки с помощью собственного рабочего пространства. Таким образом, я могу получить доступ к стабильной версии на всех компьютерах локальной сети и будущих версиях запущенных разработчиков. Возможно ли это с помощью git или мне нужно изменить программное обеспечение для управления версиями?Git с рабочим пространством для каждой отдельной ветви

ответ

1

Я предполагаю, что вы хотите, чтобы вы проверяли рабочий каталог (то, что вы называете «рабочей областью») каждой текущей ветви на вашем веб-сервере, поэтому люди (разработчики, тестеры) могут легко и быстро получить доступ к вашему приложению в состоянии каждая ветка.

Это легко возможно: git branch --no-merged master предоставит вам все «открытые» ветви, т. Е. Ветви, которые не были объединены обратно в master. Вы также можете фильтровать по имени филиала с git branch --list --no-merged master FEATURE-*, который предоставит вам все не объединенные ветки, начиная с «FEATURE-».

С этого момента, если вы на Unix:

cd somecurrentworkingdirectory 
for branch in `git branch --no-merged master` ; do 
    echo Creating $branch 
    git clone git://source/repos/xyz /whereveryourwebserveris/branches/$branch -b $branch 
    ... do more stuff to get it working on your webserver ... 
done 

Или аналогично, если вы на Windows, и с помощью какого-либо другого языка сценариев.

Кроме того, для этого существуют существующие решения, например Jenkins («непрерывная интеграция», «непрерывное развертывание»).

+0

Я проверю Дженкинса, может быть, это решения, которые я ищу. Большое спасибо! +1 –

0

Возможно ли это, но это не имеет смысла. С git, так как вы не используете git push, все изменения ограничены вашими локальными репозиториями, то есть если вы выполняете git commit, вы сохраняете изменения локально. Итак, вы можете изменить каждую ветку, а затем зафиксировать свои изменения, и если они верны, вы можете нажать на удаленный сервер, иначе вы могли бы восстановить предыдущие версии файла.

+0

Конечно, я думал о конфигурации сервера, а не о локальной работе git. Когда разработчик делает git push на правильную ветку, я могу получить доступ к коду через браузер для каждой ветки и мастера. –