Мы используем Git для синхронизации наших серверов (dev и live) с нашими машинами разработки. Разработчики загружают через SFTP на сервер dev для проверки функций и изменений. Затем, когда все будет завершено, оно будет завершено и, наконец, втянуто в репозиторий Git.Проблемы с загрузкой по FTP
Проблема заключается в том, что
git commit -a -m 'Message' # on local machine
git push origin master # on local machine
git pull origin master # on server
на сервере почти всегда не просто объединять файлы, удалять или игнорировать неотслеживаемые них. Он думает, что есть изменения и советы, чтобы их совершить, но, конечно, мы этого не хотим! Например, после следующих шагов очистки и сброса остаются две незатребованные папки, которые мы добавим ?!
Мы пытались
git reset --hard HEAD
git clean -f
git fetch
И прочитал много руководств GIT. Но это не работает, как это было с
svn up --force
Я посоветовал синхронизировать сервера время от времени, не может быть несоответствие, прерванной загрузки и т.д. Что не так? Разве мы не можем работать с Git таким образом? Это большая работа по очистке каталогов серверов все время.
Редактировать: Я должен добавить, что мы не можем тестировать локально, поскольку веб-приложение сильно зависит от домена и требует сложной настройки (Solr).
Будет ли это лучше через общий ресурс NFS вместо FTP?
Вы сказали, что разработчики загружают в другую папку, чем репо. Но как вы затем синхронизируете обе папки?На реальном сервере не будет загрузки, просто git pull. которые должны работать. Проблема - это только тестовый/dev-сервер. – Corni
no Я сказал, что разработчики берут на себя ответственность за репо, тогда, если их ветвь фиксации является хозяином, хук после приема запускает попытку от главного на тестовом сервере, который обновляет файлы. – DevDonkey
Хорошо. До сих пор мы не используем филиалы. Я действительно не понимаю, зачем нам нужен собственный скрипт, чтобы делать то, что мы хотим. Git должен быть в состоянии сделать это из коробки, как это сделал SVN? – Corni