Я понимаю, что Мерзавец может использоваться без центрального репозитория. Однако я запускаю проект с нескольких других людей, и мы географически распределяемся. Т.е. Мы никогда не будем на той же LAN для синхронизирования repos.
Так мой вопрос: действительно ли возможно продвинуть / получение по запросу изменяет от каждого других repos по Интернету? Если так, как я иду об этом? Самая легкая несуета путь.
Заранее спасибо.
Если у вас есть SSH-доступ к машинам друг друга (который может быть немного проще настроить в некоторых сетях, чем доступ по протоколу git: //), то это так же просто, как:
git pull ssh://username@host:/path/to/repository/.git
Если прямой доступ по любому протоколу не Это невозможно (например, если вы находитесь за маршрутизатором с NAT), вы всегда можете отправлять друг другу патчи.
Но у Git есть другой способ сделать это, git-bundle
, который позволяет вам отправлять файл (по электронной почте или другим способом) вашим соавторам, который может быть отправлен и вытащен и из репозитория. Автор Pro Git опубликовал в блоге учебное пособие по этому .
Если вы можете использовать ssh для компьютеров друг друга, вы можете использовать git push / pull для компьютеров друг друга. Однако не рекомендуется иметь полностью одноранговый репозиторий. Один из вас должен поддерживать «голый» репозиторий, с которым все синхронизируются, иначе вы столкнетесь со странными и раздражающими ситуациями, когда вы нажмете на репозиторий, над которым работает кто-то другой.
На самом деле, вероятно, лучше всего использовать github, если вы не работаете над чем-то с закрытым исходным кодом и не можете платить за частные репозитории.
Я бы предложил использовать центральный репозиторий, из которого вы все можете толкать и тянуть через ssh. Это предотвратит вышеупомянутые проблемы, которые возникают при отталкивании в репозиторий, в котором кто-то работает.
Смотрите эту ссылку для хорошей информации о настройке:
http://toolmantim.com/thoughts/setting_up_a_new_remote_git_repository
Вам нужно какое-то «прямое» ненатуральное соединение (то есть, если вы находитесь за маршрутизатором, это проблема). На вашем месте я бы выбрал github
. В разделе справки все хорошо объясняется.