Использование GIT для клонирования с компьютера с Windows на веб-сервер Linux (в доме) - PullRequest
4 голосов
/ 18 октября 2011

ОК, я ищу способ использовать GIT для обновления веб-сайта между моей локальной машиной (git-репозиторий) и моим веб-сайтом (git-клон репозитория).

Я инициализировал хранилище (на компьютере с Windows 7) и добавил все файлы в репозиторий на моей локальной машине. Теперь мне нужно получить репо на webswerver (машина на основе Linux). Я могу получить доступ к веб-серверу через putty и ssh. Как мне клонировать репо в соответствующий каталог для обслуживания веб-сайта?

Я попробовал следующее на моей машине с Linux: git clone git + ssh: //myuser@10.1.0.135/d/webserver/htdocs/repo

Я продолжаю получать соединение с хостом 10.1.0.35, порт 22: время ожидания истекло

Обе машины находятся в доме, а веб-сервер находится за пределами сети с другим диапазоном IP-адресов (за пределами брандмауэра). Я пришел из Subversion и могу без проблем выполнить svn commit / update с веб-сервера и с моего компьютера без проблем.

Спасибо за любые указания по этому вопросу!

Ответы [ 5 ]

8 голосов
/ 15 января 2013

Лучший ресурс, который я нашел для этого, расположен здесь .

Проблема, с которой я столкнулся, заключалась в том, что я не смог выполнить команду git clone из среды * nix, используя приведенные выше рекомендации.чтобы правильно найти путь к репо.

Мне удалось это исправить, запустив демон git с параметрами --base-path и --export-all.

Итак, изокно windows:

git daemon --base-path=C:/source/ --export-all

Затем из поля * nix (в моем случае Mac):

git clone git://<local ip>/<project name>

Моя структура каталогов в окне окна:

c:\source\<project name> - this is where the .git folder lives
1 голос
/ 18 октября 2011

Вот пошаговое руководство кто-то еще сделал. Это шаг за шагом показывает, как делать то, что вы хотите.

1 голос
/ 18 октября 2011

IP-адрес 10.1.0.135 зарезервирован для частных сетей, что означает, что он относится только к вашему локальному компьютеру Windows, когда используется в вашей домашней сети. Если вы запускаете команду git clone с этим адресом на своем сервере, 10.1.0.135 относится к совершенно другому компьютеру, что объясняет, почему не работает соединение.

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

server$ git init /path/to/repository

и затем отправить изменения с вашего компьютера в хранилище сервера

home$ git remote add website ssh://myuser@server/path/to/repository
home$ git push website

Вы можете называть пульт дистанционного управления чем-то, кроме «веб-сайта», если хотите.

Для более продвинутого использования я написал сообщение в блоге , объясняющее, как настроить промежуточные и рабочие серверы и поддерживать их с помощью git. Если вы не хотите иметь дело с промежуточным сервером, я также сделаю ссылку на пару учебных пособий по простой настройке с двумя репозиториями для управления сайтом с помощью git, что, по сути, выглядит так, как будто вы ищете.

0 голосов
/ 18 октября 2011

Хорошая идея сделать это с помощью Git, если вам все равно нужно проверить его в системе контроля версий.

Просто хотел бы отметить, что вы также можете взглянуть на утилиту rsync - например, google "Rsync Windows"приносит некоторые хорошие результаты.

Rsync специально создан для синхронизации деревьев каталогов между компьютерами.И он делает это умно, не передавая файлы, которые уже находятся на другой стороне, и вы можете использовать сжатие ... он имеет множество функций и обычно используется в производственных средах UNIX.Есть способы запустить его и в Windows.

В любом случае:

Проверьте настройки брандмауэра на обеих машинах - соответствующие порты должны быть открыты.В вашем случае порт 22, вероятно, заблокирован

0 голосов
/ 18 октября 2011

Похоже, ваш компьютер с Windows 7 (в частности, порт 22) может быть недоступен снаружи брандмауэра.С Subversion веб-сервер, вероятно, доступен для обеих машин.Кроме того, IP-адрес вашего компьютера с Windows является немаршрутизируемым IP-адресом, что означает, что ваш брандмауэр, вероятно, также выполняет NAT для вашей внутренней сети.

Для этого можно открыть порт 22 в брандмауэре или настроитьпереадресация портов в брандмауэре, чтобы указать на ваш компьютер с Windows.Но вам, вероятно, следует создать git-репо на сервере, а затем клонировать его на свой компьютер с Windows.Вы можете использовать scp -r для получения этого первоначального репо на сервере, хотя кто-то с большим опытом работы с git может предложить вам лучший способ.

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