Git для небольшой команды?

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


Решили наконец внедрить управление версиями в своей команде. Программистов всего 3 человека.

Сейчас у нас так: в офисе стоит сервер, на нем все разрабатываемые сайты. Работаем в Netbeans, подключаясь к серверу по SMB. Соответственно работать одновременно 2-ум программистам даже над одним модулем CMS невозможно, не говоря уже об одном файле.


Так вот вопрос: подскажите пожалуйста как лучше организовать работу с Git? При том так, что бы вся работа происходила встроенными в Netbeans инструментами, хотя терминала то же не боимся.


Мне кажется, важно уточнение: мы в основном занимаемся разработкой сайтов(корпоративные, интернет-магазины).
  • Вопрос задан
  • 16144 просмотра
Пригласить эксперта
Ответы на вопрос 11
dshster
@dshster
Javascript, Frontend
Ну для начала вам придётся поднять отдельную копию сайта каждому разработчику, а на сервере общая версия, куда будут сливаться все изменения и показываться заказчику.

Во-вторых все же принцип работы git в командной строке изучить надо — будет проще работать через gui понимая суть.

В третьих — в NetBeans есть модуль git, который хорошо работает, останется только наладить workflow, и deploy коммитов на сервер (на хабре были несколько вариантов решения)

У себя же в локальной копии разрабочик волен сам создавать нужные для себя ветки и делать коммиты, останется договориться о том, в какие ветки сливать наработки на сервер.
Ответ написан
shebanoff
@shebanoff
Для меня представляется проблемой нормальный git-workflow в винде (пробовал только Git for Windows). Но могу Вам порекомендовать Github для Windows как эталон рабочих процессов.

И по поводу проблемы с общим доступом к серверу: научившись использовать ветки git, попробуйте настроить себе capistrano для деплоя (как на локальный, так и на production сервер).
Ответ написан
alexhemp
@alexhemp
Реально работающая схема такая

1. На Web-сервере у каждого разработчика есть аккаунт
2. В home директории разработчика есть папка Sites
3. Web-сервер с помощью VirtualDocumentRoot отображает запросы вида user.example.com в /home/user/sites/example.com — это и есть сайты разработчиков. От внешнего мира их легко закрыть http-авторизацией
4. Разработчики публикуют свои рабочие копии через realsync а не через git — есть статья на хабре
5. Есть сайт devel.example.com — он деплоиться git из ветки devel — это ветка подготовки релиза, после слияния изменений. Деплой — хуками в интеграционном репозитории, сам сайт — рабочая копия ветки devel
6. Есть сайт example.com — он деплоиться git из ветки master — это ветка продакшн-релиза. Деплой — хуками в интеграционном репозитории, сам сайт — рабочая копия ветки master

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

6.
Ответ написан
  • Статья на хабре о удачной модели ветвления в гите: habrahabr.ru/post/106912/
  • То что Вы работаете на одном сервере выглядит нехорошо, тк если с этим сервером что-нибудь случится, то никто не сможет работать (а теперь оцените как дорого обойдется сгорание сервера перед срочным релизом), так что советую также посмотреть в сторону быстрого развертывания приложения как prod так и dev версий и работать отдельно.
  • То что Вы работали без контроля версий выглядит также нехорошо, тк узнать кто, что и почему делал в модуле или файле через несколько месяцев становится практически невозможно.
  • Под венду есть консольный клиент msysgit.github.com/, который Вам уже советовали, по мне он вполне удобен, есть также code.google.com/p/tortoisegit/, который Вам уже тоже советовали. Для eclipse есть плагин для гита, для ide от jetbrains поддержка гита из коробки, так что вероятнее всего в netbeans есть плагин. Как альтернативу можно глянуть Mercurial, тк он похож командами на гит и вроде с клиентами под венду у него проще, но сам не пробовал.
  • Если Вам не подходит приватный репозиторий на гитхабе или битбакете, то стоит делать бекапы на какой-нибудь сторонний сервер (или сервис, как google storage, amazon storage, google drive, dropbox), хотя вероятность того, что сгорит центральный сервер и тачки разработчиков с локальными версиями сильно уменьшается по сравнению с одним сервером или тачкой, тк гит это еще и бесплатная возможность бекапа.
Ответ написан
Комментировать
shebanoff
@shebanoff
Выделю в отдельный ответ, чтобы не затерялось среди комментариев: компиляция ресурсов для изучения Git от Github, исчерпывающий список информации для изучения по теме.
Ответ написан
aur
@aur
Не знаю как сейчас в NetBeans с клиентом Git, но в свое время SVN-плугин работал ужасно. Посмотрите на TortoiseGit code.google.com/p/tortoisegit/wiki/Screenshots
Ответ написан
opium
@opium
Просто люблю качественно работать
У каждого на компе свой репозиторий, если фич не много то все пишут в одну ветку и пушат на сервер гита.
Ответ написан
Paul
@Paul
Не пытайтесь работать с Git на уровне интуиции, обязательно прочитайте толковую книжку/сайт/мануал сначала (только не HOWTO «Git за час», это понимания не даст), это позволит вам избежать кучи проблем и сэкономит в дальнейшем уйму времени.
Ответ написан
Все уже сказали выше, но хочу лишний раз отметить, что локальные копии это сверхудобно.
Ответ написан
Комментировать
Ubran_Hera
@Ubran_Hera
не понимаю — почему никто не упомянул GitExtensions ?!

из виндовых клиентов — самый наглядный
пушить можно и плагином к IDE (лучше — просто из консоли)

а вот открыть и посмотреть историю разработки — только в Git Extensions!
code.google.com/p/gitextensions/downloads/list
Ответ написан
Ваш ответ на вопрос

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

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