Что я хочу сделать, так это настроить удаленный сервер на gant. Я хотел бы создать другое рабочее пространство для каждой ветви (включая master), чтобы одновременно обслуживать разные версии. Зачем? Я настраиваю git-сервер на локальном веб-сервере с целью тестирования перед загрузкой веб-страниц в производственные среды, а когда разработчику необходимо изменить код, я бы хотел создать ветвь для этой разработки с помощью собственного рабочего пространства. Таким образом, я могу получить доступ к стабильной версии на всех компьютерах локальной сети и будущих версиях запущенных разработчиков. Возможно ли это с помощью git или мне нужно изменить программное обеспечение для управления версиями?Git с рабочим пространством для каждой отдельной ветви
ответ
Я предполагаю, что вы хотите, чтобы вы проверяли рабочий каталог (то, что вы называете «рабочей областью») каждой текущей ветви на вашем веб-сервере, поэтому люди (разработчики, тестеры) могут легко и быстро получить доступ к вашему приложению в состоянии каждая ветка.
Это легко возможно: 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 («непрерывная интеграция», «непрерывное развертывание»).
Возможно ли это, но это не имеет смысла. С git, так как вы не используете git push, все изменения ограничены вашими локальными репозиториями, то есть если вы выполняете git commit, вы сохраняете изменения локально. Итак, вы можете изменить каждую ветку, а затем зафиксировать свои изменения, и если они верны, вы можете нажать на удаленный сервер, иначе вы могли бы восстановить предыдущие версии файла.
Конечно, я думал о конфигурации сервера, а не о локальной работе git. Когда разработчик делает git push на правильную ветку, я могу получить доступ к коду через браузер для каждой ветки и мастера. –
Я проверю Дженкинса, может быть, это решения, которые я ищу. Большое спасибо! +1 –