Основы
Репозиторий git - это не более чем коробка. Вы можете поместить в него свой код (фиксация), вы можете отправить копию содержимого в другой (удаленный) ящик (push), и вы можете получить контент из другого поля в свой собственный ящик (pull).
Если ваш друг отправил свой контент в какой-либо ящик в Интернете (например, на github), и вы не можете получить доступ к этому местоположению с вашего хоста, это поле не поможет в вашем случае.
У вас есть несколько вариантов:
- Вытащите прямо из репозитория ваших друзей («ящик», который он использовал для отправки на github.)
- Попросите его напрямую отправить свой репозиторий на ваш хост.
- Создайте репозиторий где-нибудь в вашей сети. (В этом случае он может нажать в этот репозиторий, а вы потом можете извлечь из него.)
Решение с использованием промежуточного репозитория
Поскольку вы используете ubuntu, который уже поставляется с ssh, возможно, самым простым решением является настройка нового пользователя на вашем компьютере и создание там чистого репозитория. Тогда у вас есть место, откуда вы можете получить информацию, и ваш друг может использовать этого пользователя для отправки в этот репозиторий.
Сделать это можно так:
sudo useradd -m gituser # create user
sudo -iu gituser git init --bare reponame # create repository
sudo passwd gituser # set password for user
После этого ваш друг может нажать на него, используя git push gituser@yourhost/reponame
. И вы можете получить отправленный контент с помощью git clone gituser@yourhost/reponame
.
Решение с использованием git-daemon
Другой способ - использовать git-daemon на ваши друзья хостят для обслуживания своего хранилища. В этом случае вы можете тянуть прямо с его хоста. На окнах типа:
git daemon --base-path=PATH --export-all
где «ПУТЬ» - это локальный каталог, содержащий репозиторий. В ubuntu вы можете получить доступ к этому репозиторию, используя
git clone git://friendshost/reponame
где «friendshost» - это имя хоста вашего друга, а «reponame» - это имя каталога, содержащего репозиторий. Например, если репозиторий находится в «C: \ some \ dir \ repo», тогда «C: \ some \ dir» - это ПУТЬ, а «repo» - это репозиторий.)
person
michas
schedule
02.10.2014
git clone
поверх ssh или rsync и пропустить все это. - person Hasturkun   schedule 14.10.2014