Git репозиторий на FTP-сервере - PullRequest
15 голосов
/ 28 февраля 2011

У меня есть ftp-сервер, и я не могу установить на него дополнительное программное обеспечение.Возможно ли создать на нем git-репозиторий и клонировать его на локальный ПК?Я попытался создать локальный репозиторий и скопировал его в ftp.Это будет работать?Как я могу клонировать с ftp сервера?

Ответы [ 4 ]

6 голосов
/ 28 февраля 2011

Существуют и другие вопросы о StackOverflow, которые обсуждают эту тему, например:

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

Вы не говорите, какую операционную систему вы используете.я использую, но если он основан на Linux, я бы попытался подключить FTP-сервер как часть вашей локальной файловой системы с помощью FUSE + fuseftp .Если вы используете Mac OS, вы можете попробовать MacFuse .(nb Я сам никогда не пробовал использовать fuseftp, поэтому я не могу рекомендовать или не рекомендовать его.) Нет сомнений, что есть и эквиваленты для Windows.

Тогда вам следует просто сможете запустить git init --bare в смонтированном каталоге и извлекать и извлекать из него, как если бы это был локальный репозиторий.Вам также следует включить пример подключения post-update, чтобы git update-server-info запускался после каждого нажатия - в противном случае у людей будут проблемы при взаимодействии с сервером с URL-адресом хранилища ftp://.

5 голосов
/ 28 февраля 2011

Это будет работать, если Git работает на сервере.

Но из того, что вы описываете, я думаю, это не так.

3 голосов
/ 08 мая 2014

Да, это должно работать. См. этот другой ответ , а также о том, как это сделать.

Это в основном то же самое, что и доступ по HTTP, просто с помощью спецификатора протокола ftp:// в URL:

git clone ftp://username:password@ftp.server.net/repos/project.git

ПРИМЕЧАНИЯ:

  1. Вы запрашивали только клонирование , но если вам также необходимо записать что-либо обратно в удаленное хранилище (т. Е. push тоже), тогда вам не повезло с простой настройкой FTP и без разрешения на запуск дополнительного программного обеспечения на сервере.

  2. Доступ к FTP не обходится без предостережений, о чем свидетельствует другой ответ SO (ссылка выше), или этот пост здесь (о недоступных файлах, в зависимости от FTP-сервера / конфигурации).

  3. На странице руководства git-clone говорится, что транспорт FTP стал "устаревшим" и его следует избегать по разным причинам. Надеюсь, это просто ошибка, так как

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

    b) Кажется, что это несовместимо с справочной страницей gitremote-helpers , в которой также явно упоминается транспорт ftp, и ничего против этого не имеет.

    c) Каждый транспорт имеет свои ограничения / достоинства, FTP не является исключением. (Через команду capabilities транспортных помощников инструменты также могут без проблем договориться, для чего использовать, а для чего нет.)

    Надеюсь, клонирование git продолжит работать через FTP (и, возможно, на самом деле этот страшный комментарий означает, что git не изначально поддерживает его), пока FTP остается практическая альтернатива.

1 голос
/ 12 октября 2016

Это можно развернуть на ftp-сервере, используя инструмент git-ftp project .Он прост в использовании и может быть установлен на локальном сервере для удаленного развертывания.Вот базовая конфигурация, которая отлично сработала для меня:

  - git config git-ftp.user YOUR_FTP_USERNAME # ftpuser
  - git config git-ftp.password YOUR_FTP_PASSWORD # ftppass
  - git config git-ftp.url YOUR_FTP_SERVER # ftp.domain.com, might be a path to subdirectory ftp.domain.com/public_html
  - git config git-ftp.syncroot public_html/ # optional if you only want to push a part of your repository
  - git ftp init
  - git ftp push
...