Git репозиторий на ftp-сервере

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

Ответ 1

В StackOverflow есть несколько других вопросов, которые обсуждают этот вопрос, например:

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

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

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

Ответ 2

Он будет работать, если на сервере выполняется Git.

Но из того, что вы описываете, я бы предположил, что это не так.

Ответ 3

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

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

git clone ftp://username:[email protected]/repos/project.git

ПРИМЕЧАНИЯ:

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

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

  • git -clone man page говорит, что FTP-транспорт стал "устаревшим" и его следует избегать по разным причинам, Эта заметка, надеюсь, просто ошибка, так как

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

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

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

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

Ответ 4

Вы можете установить это на 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