Git: как организовать работу нескольких разработчиков с одним репозиторием?

Здравствуйте!

У меня есть несколько вопросов по организации работы с Git, буду рада, если кто-то сможет что-нибудь посоветовать.

Мы собираемся вести разработку на тестовом сервере без использования программирования на локальных компьютерах. Хотим использовать Git, чтобы можно было видеть, кто и когда какие файлы изменял. Я правильно понимаю, что если к одному репозиторию на сервере обращаются несколько разработчиков, то ветки использовать мы не сможем (из-за того, что репозиторий переключается в какюу-то одну ветку, и вести разработку в нескольких ветках одновременно разным разработчикам не получится)?

Второй вопрос - если мы будет программировать в тесте без веток, точнее всё создавать в master, а потом оттуда сливать в бой (в другой удалённый репозиторий), то можно как-то делать push с указанием, какие именно файлы нужно забросить? То есть, чтобы на удалённый репозиторий переливалась не вся ветка master, а некоторые её файлы.

Если это невозможно в git, то может посоветуете, как можно организовать такой процесс разработки? Использование локальных компьютеров отпадает из-за использования Bitrix. То есть, нужно организовать процесс разработки сайта на одном сервере несколькими разработчиками и затем его переливать в бой.
  • Вопрос задан
  • 7181 просмотр
Решения вопроса 1
Sander_Li
@Sander_Li
Backend developer
Вы не верно понимаете, как устроен гит. Мне кажется вы пытаетесь описать svn.
Если вашей изначальной целью было создать среду максимально схожую с продакшн серверном, лучше воспользуйтесь Vagrant.
На тестовом разверните один из репозиториев, для тестирования релизов, а bare репозиторий можно разместить, например, на bitbucket.org (если он вам не подходит по какой-то причине, можно на том же тестовом)
А вот по такой схеме можно работать в команде gitflow.
И небольшая автоматизация процесса.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
@kaasius
День добрый.
Ответ на первый вопрос - нет, вы понимаете неправильно, можно сделать все красиво.
Ответ на второй вопрос вытекает из первого - вам не надо программировать без веток.
Сразу отвечая на третий вопрос - возможно настроить различные доступы на различные ветки, сповесить на это все автотесты, деплой на боевой сервер при пуше в ветку release, а на тестовый сервер - при пуше в ветку test.

Заранее отвечая на вопрос "как", скажу слова gitolite, хуки, bare репы, etc. Но если у вас серьезный бизнес - может вам просто нужен аутсорс админ, чтобы это все настроить? Тогда просто свяжитесь со мной, я вам с этим помогу.
Ответ написан
Комментировать
@DancingOnWater
А дамочка-то знает толк в извращениях.

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

Собственно вся суть любой системы контроля версий: избежать этого ада.
Ответ написан
@Raily Автор вопроса
Спасибо за ответ! Мне надо понять - нужен нам вообще git или нет.
Я не могу понять вот что. К примеру, есть в Git следующие ветки: master, test1 и test2. Заходит на сервер первый разработчик, переключается в репозитории на ветку test1, делает в ней что-то. Затем в тот же репозиторий заходит второй разработчик и переключается на ветку test2. Весь репозитоирий в этот момент не будет смотреть в ветку test2? У первого разработчика не произойдёт переключения в ветку test2?
Ответ написан
@Raily Автор вопроса
Я знаю, что обычно используются у каждого своя рабочая версия проекта. Ограничения на использование локальной машины создаёт Bitrix, без него бы было всё понятно. А так есть 2 лицензии - для тестовой и боевой версий сайта. Bitrix установлен на сервер, не я выбирала Bitrix, пришла на то, что есть. Вот теперь вопрос - как с этим лучше работать совместно.
Пока склоняемся работать несколько человек над одним репозиторием, но тут возникает много вопросов. Либо нужно будет ставить каждому виртуальную машину с Bitrix.
Ответ написан
Lalikin
@Lalikin
айтишник с фотокамерой
почитайте книгу «Pro Git», там правда все просто
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы