Как два ноутбука могут взаимодействовать друг с другом без интернета - PullRequest
18 голосов
/ 10 мая 2011

Скажите, что мой со-хакер и я оказались на необитаемом острове. Обычно мы нажимаем и тянем на github для синхронизации друг с другом. Как бы вы порекомендовали нам это делать, когда у нас нет связи с внешним миром?

(Пользователь @ bee и у меня действительно возникает эта проблема, когда я набираю это, хотя, очевидно, не так, как я отправляю это. В нашем случае у нас обоих есть ноутбуки Mac - OSX Snow Leopard - но я думаю, было бы лучше рассмотреть этот вопрос в общем.)

Ответы [ 5 ]

19 голосов
/ 10 мая 2011

Возьми SD-карту или USB-флешку или еще что-нибудь. Создайте голое хранилище там. Затем один толчок к этому репо, размонтируйте карту / флешку, передайте другому, этот один вытащите из него.

cd /path/to/usbstick
mkdir repo
cd repo
git init --bare
cd /path/to/local/repo
git remote add usb /path/to/usbstick/repo
git push usb --all

Одна другая машина

cd /pat/to/local/repo
git remote add usb /path/to/usbstick/repo
git fetch usb --all
17 голосов
/ 10 мая 2011

Самое простое решение, вероятно, состоит в том, чтобы просто настроить беспроводную сеть и SSH для каждого другого ноутбука.Вы можете настроить пульт с помощью

$ git remote add cohacker myuser@cohackers-laptop:/path/to/repo.git

Теперь вы можете нажать / тянуть к своему сердцу:

$ git pull cohacker master
 ... hack away ...
$ git push cohacker master
10 голосов
/ 10 мая 2011

Одним из решений, совместимых с вашим сценарием, будет обмен через USB-флешку один файл через git bundle

Это позволяет вам:

  • считают, что один файл («комплект») является вышестоящим репо, в который каждый пользователь может обновить указанный комплект и из которого он может получать новые коммиты.
  • избегайте попыток синхронизировать большой набор файлов / метаданных внутри структуры репо.
  • не полагайтесь ни на какие сетевые / серверные процессы.
2 голосов
/ 10 мая 2011

Для начала - получите эту книгу - http://book.git -scm.com /

Незаменимый

Во-вторых, на странице 40 есть раздел под названием Распределенные рабочие процессы

Это должно охватывать все, что вам нужно, просто используйте ssh в качестве протокола связи (если вы знакомы с ssh из командной строки)

2 голосов
/ 10 мая 2011

Локальный запуск git-сервера должен работать, если вы находитесь в той же сети.Один будет перенаправлять на свою машину, другой - на другую машину (на основе локального IP).

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