2010-03-31 6 views
6

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

Итак, мой вопрос: возможно ли вытащить/вытащить изменения между репозиториями друг друга через Интернет? Если да, то как мне это сделать? Самый простой способ без суеты.

Thanx заранее.

+3

если вы можете получить доступ к машине на другом конце через ssh вы можете нажать/потянуть с git –

+0

Thanx для отличных ответов. Думал пойти с github, но просто задавался вопросом, был ли это предпочтительным/простым способом или был ли простой способ распространения. Тогда я, вероятно, буду придерживаться github. –

+0

GitHub - это наименее сложное решение –

ответ

12

Если у вас есть доступ по SSH к машинам друг друга (который может быть немного проще установить в некоторых сетях, чем мерзавец: // Протокол доступа), то это так же просто, как:

git pull ssh://[email protected]:/path/to/repository/.git 

Если прямой доступ по любому протоколу невозможен (например, если вы находитесь за маршрутизатором с NAT), вы всегда можете отправлять друг другу патчи.

Но у Git есть еще один способ сделать это: git-bundle, который позволяет отправлять файл (по электронной почте или, тем не менее, вы отправляете файлы) своим сотрудникам, которые можно выталкивать и вытаскивать туда и обратно, как репозиторий. Автор Pro Git имеет номер blog post tutorial on this.

3

Вам нужно какое-то «прямое» не-nat-ed соединение (это означает, что если вы находитесь за маршрутизатором, это проблема). Если бы я был вами, я бы пошел за github

Раздел справки объясняет все красиво.

+2

вы можете находиться за маршрутизатором до тех пор, пока вы находитесь в зоне dmz маршрутизатора. –

+1

Я не использую его сам, но из многих других вопросов видно, что пользователи успешно использовали git через ssh на окнах; перенаправление портов - это просто настройка маршрутизатора. Обратите внимание, что для проектов с закрытыми исходными кодами еще одним вариантом является оплата частного git-хостинга. – Cascabel

+3

@fuzzy lollipop: Пожалуйста, не открывайте * все * порты на свой компьютер, чтобы получить единственный для SSH. – Cascabel

5

Если вы можете использовать ssh для компьютеров друг друга, вы можете делать git push/pulls для компьютеров друг друга. Однако на самом деле не рекомендуется иметь полностью одноранговый репозиторий. Один из вас должен поддерживать «голый» репозиторий, с которым все синхронизируются, иначе you will run into strange and annoying situations when you push to a repository that someone else is working on.

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

2

Я бы предложил использовать центральное местоположение хранилища, которое вы можете все нажать и вытащить с помощью ssh. Это позволит предотвратить проблему, упомянутых выше, которые вызываются нажатием на репо кто-то работает в

Смотрите эту ссылку для хорошей информации настройки:.

http://toolmantim.com/thoughts/setting_up_a_new_remote_git_repository

Смежные вопросы