Может ли Git выдвигать / тянуть через Интернет для распределенных репозиториев? - PullRequest
6 голосов
/ 31 марта 2010

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

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

Спасибо заранее.

Ответы [ 4 ]

12 голосов
/ 01 апреля 2010

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

git pull ssh://username@host:/path/to/repository/.git

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

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

5 голосов
/ 01 апреля 2010

Если вы можете использовать ssh для компьютеров друг друга, вы можете выполнять git push / pull для компьютеров друг друга. Однако на самом деле не рекомендуется иметь полностью одноранговое хранилище. Один из вас должен поддерживать «голое» хранилище, с которым все синхронизируются, в противном случае вы столкнетесь с странными и раздражающими ситуациями, когда вы нажмете на хранилище, над которым работает кто-то еще.

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

3 голосов
/ 31 марта 2010

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

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

2 голосов
/ 01 апреля 2010

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

См. Эту ссылку для подробной информации о настройке:

http://toolmantim.com/thoughts/setting_up_a_new_remote_git_repository

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...