Відповіді:
Деякі інструменти, нещодавно додані до вікі Git :
git-ftp від Рене Мозера - простий скрипт оболонки для FTP Git способом. Використовуйте git-ftp.sh для завантаження лише відслідковуваних файлів Git на FTP-сервер, які змінилися з моменту останнього завантаження. Це економить час та пропускну здатність. Навіть якщо ви граєте з різними гілками, git-ftp.sh знає, які файли відрізняються. Жоден звичайний FTP-клієнт не може цього зробити.
git-ftp Edward Z. Yang - це простий скрипт, написаний на python для завантаження файлів у сховище Git через FTP, лише перенесення нових файлів та видалення старих файлів.
Якщо ви віддаєте перевагу графічний інтерфейс, використовуйте SourceTree, ви можете легко встановити власну дію, яка використовує згадані вище git-ftp. Короткий опис налаштування (для Mac) у Push Git-сховищі до FTP
Я знайшов PHPloy чудовим інструментом для надсилання ваших Git зобов’язань на віддалені сервери через FTP. Він працює з командного рядка і записується в PHP (і навіть виявляє зміни в підмодулях).
https://github.com/banago/PHPloy
git commit ...
phploy -s staging
phploy -s production
Готово!
(Відмова від відповідальності: після його використання я деякий час додав деякі виправлення та вдосконалення коду, роблячи його сумісним з Windows.)
Якщо ви перебуваєте на комп'ютері та маєте передавач, я рекомендую наступний скрипт git-tranmit ( https://gist.github.com/379750 ). Він використовує DockSend для надсилання лише останніх оновлених файлів. Якщо ви не знайомі з DockSend, перегляньте http://www.panic.com/blog/2010/11/15-secrets-of-transmit/ .
Налаштування:
Це не те, що саме git, власне кажучи. Однак якщо ваш джерело не потребує компіляції чи обробці, скажімо, веб-сайт, що складається повністю з файлів html та javascript тощо, ви можете мати клон репо на своєму веб-сервері та використовувати його git pull
з сервера, щоб тримати його -на побачення. Зауважте, я налаштував би ваш веб-сервер, щоб приховати каталог git тощо. І це лише початок турбот про безпеку.
Якщо у вас є якісь компіляції чи обробки, вам слід почати дивитися на Ant , Maven , BuildR , SBT тощо.
Це сценарій у PHP, який майже автоматично завантажує git-diff на FTP-сервер:
Безкоштовно для одного проекту, і він працює дуже добре.
Тут є сценарій Ruby - Ruby git-розгортання через FTP або SSH, який завантажує лише змінені файли в git repo через FTP або SSH.
Як було сказано в іншій відповіді, ось сценарій Python git-ftp.py, який робить подібне.
А ось версія сценарію оболонки git-ftp .
Існує також проект Ruby gem під назвою git -loy, який дозволяє налаштувати власну розгортання через віддалений git за допомогою git push
команди, так само, як служби Heroku та Azure. Для цього вам може знадобитися написати спеціальні методи для розгортання через FTP, і я думаю, це передбачає, що у вас є доступ SSH до виробничого сервера.
Якщо ви вводите код у виробництво, рекомендую використовувати інсталятор, наприклад пакет RPM, щоб встановити свій код. Таким чином він буде виведений з печаткою версії, і ви зможете використовувати пакет інсталятора для підтримки оновлень виробничого коду. Git насправді не призначений для підтримки виробничих установок, він призначений для відстеження змін у самому коді.
У будь-якому випадку, з вбудованим .RPM (або EXE або будь-яким іншим), ви можете просто FTP його до виробничої системи та встановити як будь-який інший пакет.
Ви завжди можете спробувати встановити ftp у локальний каталог, використовуючи http://linuxconfig.org/mount-remote-ftp-directory-host-locally-into-linux-filesystem .
Тоді ви можете використовувати це так само, як і цей .
Я багато намагався зрозуміти це. Я зрозумів простий спосіб зробити це з різних джерел ( git-ftpINSTALL , git-ftpUPLOAD , git-ftpIssue , git-ftpPUSH ). Ви можете прочитати для довідок, але в цьому немає необхідності, оскільки я згадав покроковий процес нижче.
Перше, що спочатку: встановіть git і curl за допомогою варіння на MAC OS
brew install git
brew install curl --with-ssl --with-libssh2
brew install git-ftp
Виконайте такі команди:
git clone https://github.com/git-ftp/git-ftp.git
cd git-ftp
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install
Оновлення за допомогою git
git pull
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install
Налаштування
git config git-ftp.url YourFtpServerName.Net
git config git-ftp.user FtpUserName
git config git-ftp.password YourPassword
Завантажте всі файли
git ftp init
Або якщо файли вже є
git ftp catchup
Робота та розгортання
echo "Hello StackOverflow" >> index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
git ftp push
Якщо є помилка: pathspec 'index.txt' не відповідає жодному файлу, відомому git . Це означає, що файл ще не був інсценований, тому додайте файл, а потім спробуйте виконати.
git add application/libraries/index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
Сподіваюся, це допомагає.
Ви можете спробувати FTPloy ...
"Натисніть зміни на GitHub або Bitbucket."
"Внести зміни автоматично на ваш сервер"
У вас є один безкоштовний проект, щоб спробувати його. Зараз я використовую невеликий веб-сайт, і він працює досить добре. Кілька помилок на сайті, але його активний проект, так що принаймні вони над ним працюють.
Перевірте https://gitftp-deploy.com/, якщо ви користуєтесь MacOS і вам подобається графічний інтерфейс.
Це приємне маленьке додаток, яке використовує Git для відстеження змін та завантаження лише змінених файлів за допомогою FTP.
Особливо зручно, якщо вам не подобається платити щомісячні збори за десятки менших проектів з невеликими командами.