Как настроить Git для работы на локальном сервере?

Здравствуйте уважаемые сообщники.

Давно хотел поставить и настроить систему контроля версий для своего проекта.

Дано
Есть две локальные машины в одной сети. За одной работает программер, за другой фронт-енд (я). У каждого на машине стоит локальная версия сайта. Каждый выполняет свои задачи, но часто бывает так, что при работе с файлами программер и я можем редактировать один и тот же файл (например файл стилей). Программер работает на машине под операционной системе Виндовс. Я на Маке.

После того как мной проводятся какие-либо изменения в проекте (например где-то подправил стили или верстку), я отдаю эти файлы программеру и он сливает их со своей копией. Если изменения производил программер - он дает их мне и я сливаю их со своей копией. Сверять их вручную, выискивать файлы которые были изменения не очень удобно. Слышал, что подобную задачу гораздо легче решать используя систему контроля версий. В частности очень много слышал про Гит.

Гит-хаб не устраивает по определению. Хранить файлы где-то на сервере - не вариант. Файлы должны храниться локально.

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

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

Что делалось
Я поставил Гит на маке. Поставил Tower (GUI для Гита под Мак). Создал локальный репозиторий в папке Дропбокса. Вроде оно даже следит за изменениями в этих файлах. Но! Получается так, что сами файлы сайта лежат только в одном месте (в этой папке дропбокса), а мне нужно, чтобы было три копии (одна у меня, одна у программера и одна для главного/чистового репозитория).

Вопрос
Как сделать так, чтобы у каждого из участников была своя копия сайта? Подойдет ли вообще для этого Гит? Где в сети можно найти подробную инструкцию для решения моей задачи? Что я делаю не так? Или я вообще многого хочу?

Надеюсь, что я понятно описал свою задачу и кто-то сможет помочь полезным советом в моем вопросе. Заранее большое всем спасибо.

UPD
Вопрос решился кардинальным образом. Гит не подошел. Использую Mercurial. Для работы с репозиторием есть неплохой графический кросплатформенный интерфейс Sourcetree (к стати с Гитом тоже позволяет работать).

Описанные выше задачи подобная связка решает.

Всем спасибо за советы.
  • Вопрос задан
  • 12268 просмотров
Пригласить эксперта
Ответы на вопрос 4
qmax
@qmax
программер
Git идеально подходит для этих целей.
Но для него нужен третий репозиторий, через который вы будете синхронизироваться.
И, возможно, четвёртый репозиторий, где будет храниться последняя рабочая (а не разрабатываемая) версия, котрая гдето выложена.

Берите мануал по git и изучайте.

Есть вариант без дополнительных репозиториев, например, mercurial, или крепкожопо настроенный git. В такий схеме репозитории синхронизируются между собой.
Но при этом автоматичски порождаются дополнительные ветки (головы) в каждом репозитории, которые могут привести к путанице быстрее, чем разобраться со схемой нормальной работы.
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Гит-хаб не устраивает по определению. Хранить файлы где-то на сервере - не вариант. Файлы должны храниться локально.

Вы видимо не знаете как работает GIT. Файлы будут храниться и на сервере и локально. То есть когда вы делаете git clone вы делаете локальную копию репозитория. Полную. со всеми версиями файлов. удаленный репозиторий по большому счету используется для синхронизации между разработчиками. Локально же вы вольны делать что хотите. Есть дополнительный профит. Имея 3 копии репозитория вы всегда сможете все восстановить, так как вероятность что навернется и сервер и оба компа с локальными ничтожно мала.

Так что варианты: заплатить 5 баксов за аккаунт на гитхабе или завести оный на битбаките. Либо тяните жребий у кого развернуть gitlab либо развернуть его где-то еще.
Ответ написан
butteff
@butteff
Раз в тысячу лет заправляю свитер в носки
Установите gitlab на локальном сервере. Используйте гит на своих компьютерах для работы с ним.
Могу помочь всё установить и настроить (на коммерческой основе), полностью под ключ с нуля сделать Вам сервер для веб разработки. Если будете сами делать, готов помочь решить проблемы бесплатно, которые возникнут в процессе, если возникнут.
Ответ написан
zBit
@zBit
Full stack web developer
Git flow вам в помощь
И "голые" репозитории
А вообще вы не правильно используете git. Зачем там дропбокс вообще не понятно...
Делаете "голый" репозиторий на каком-то своём сервере. Настраиваете доступ к нему по ssh для нужных пользователей или от одного пользователя, например от git. Далее клонируете эту репу себе и ваш прогер клонирует репу себе. Итого у нас 3 репы: на серваке, у вас и у вашего прогера.

Далее делаете изменения и перед пушем не забываете делать пулл и разрешать конфликты.
Кто последний мержит - тот и решает конфликты.

А вообще, лучше использовать git flow. Не знаю как у вас в гуйной утилитке, но вообще такой инструмент есть (тупо скрипты). С ними удобнее релизить и ветки более структурированный вид принимают.

Зачем вы усложняете?)))
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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