Как вы используете GIT на нескольких компьютерах при работе над одним куском кода?
Я решил не отставать от моды и попробовать в новом проекте GIT. В целом все нравится, но есть одна проблема. Точнее не проблема, а недопонимание того как делать правильно.
Есть у меня 3 рабочих компьютера (дом, офис, ноут) и работаю я на них в достаточно хаотичном порядке, т.е. я не могу сказать, что если я сел за рабочий комп писать какую-то фичу, то мне не придется ее дописывать дома. В связи с этим я хочу понять, как я должен синхронизировать код на разных машинах. Сейчас это дело представляет собой ветку на гитхабе, но она видима для всех и выглядит это как-то неправильно, так как код там обычно незавершенный. Как Вы синхронизируете код на разных машинах обычно?
Создаю bare хранилище в папке синхронизированной через Dropbox, git push туда проект, когда заканчиваю работать на одном компьютере, синхронизирую Dropbox. На другом компьютере снова синхронизирую Dropbox и git pull изменения в папку с проектом на этом компьютере. Как-то так в общих чертах.
Пока недостатков не заметил, кроме того, что забываю запушить проект на одном компьютере, и редактирую на другом. После этого приходится сливать разные изменения.
Создайте ветку для «рабочего» кода, комитьте в эту ветку. Как почуствуете, что код работает — добавляйте его также и в master. Логично добавлять по ветке для каждой новой функциональности, чтобы упростить слияние с основной веткой.
Мы работаем всё по ветках… Есть мастер, но каждый из работников фирмы работает только в своей ветке, а потом всё комитится в мастер одним человеком. Напримерпохожим образом работает Линкус Торвальд.
Все правильно такую работу следует выполнять в ветках.
Мы делаем так. Для новой фичи создается ветка, туда может комититься комититься любой, даже не рабочий. После того как фича отлажена и оттвестирована, этот функционал мержится в master или devel.
Для своих проектов — у меня отдельная ветка develop (там может быть нерабочий код), как только код стабилизировался — перетекает в мастер все и иногда помечается тегом (версия). Для багов и фич, если они есть где-то в системе багтрекинга, то тут 2 варианта можно применить. Если проект огромный, то имеет смысл заводить ветку на фичу или баг, если проект небольшой, то можно обойтись префиксами к коммитам, а ветки выделать под большие фичи.
Спасибо все за ответы, похоже, что я был не так далек от истины:)
Только вот получается, что надо либо делать много много веток удаленных, либо весь код будет в одну кучу скапливаться и получается похоже на SVN. Но, в любом случае, работать можно:)