Зафиксируйте изменения, сделанные на сервере, с помощью расширения Git для Plesk Onyx.

Возможно ли с расширением Git для Plesk фиксировать изменения, сделанные непосредственно на сервере (например, файлы, загруженные клиентом на свой сайт)?

Расширение настроено на отслеживание удаленного (GitHub) репозитория, и единственный доступный параметр — «Извлечь последние коммиты». Похоже, он не предлагает функций Commit или Push.

Я попытался вручную зафиксировать локальные изменения при подключении к серверу через ssh, но в моем рабочем дереве нет каталога .git, поэтому я не могу запустить команду git...


person cornegigouille    schedule 27.03.2017    source источник


Ответы (5)


Вы можете зафиксировать и нажать на свой сервер git.

В моем случае файлы моего веб-сайта находятся в /var/www/vhosts/xxx/httpdocs/memberportal, а git настроен в /var/www/vhosts/xxx/git/memberportal.git#.

Если я перейду в свой веб-каталог в /var/www/vhosts/xxx/httpdocs/memberportal, я могу вызвать git следующим образом:

git --git-dir ../../git/memberportal.git --work-tree . add .  
git --git-dir ../../git/memberportal.git --work-tree . status  
git --git-dir ../../git/memberportal.git --work-tree . commit -m "My message"
git --git-dir ../../git/memberportal.git --work-tree . push  

Однако всякий раз, когда я извлекаю данные из репозитория, все измененные файлы будут удалены с хоста plesk. Это означает, что если вы используете веб-перехватчик для автоматического развертывания, изменения на вашем рабочем сервере могут быть удалены до того, как вы сможете отправить их в свой репозиторий.

person Adam    schedule 14.03.2019

Насколько я знаю, расширение Plesk Git создает только голые репозитории (или в человеческом смысле только «режим развертывания»), поэтому нет рабочего дерева, а фиксация и отправка недоступны.

Это решение основано на отсутствии «разработки» на «производственном сервере».

Я не знаю, будет ли это расширение поддерживать не голые репозитории в будущем или нет.

person Oleg Neumyvakin    schedule 27.03.2017
comment
Я могу это подтвердить. Есть каталог /git/dirname.git, в котором можно запустить git log, но git checkout -b test не получится. (Связанные ) - person lucidbrot; 12.08.2018
comment
вы можете использовать push и commit, см. мой ответ - person Adam; 14.03.2019

Способ, который я использую для решения этой проблемы, почти похож на подход Адама. Единственное отличие состоит в том, что вместо работы в рабочем каталоге я запускаю git из каталога .git с параметром --work-tree.

git --work-tree=/var/www/vhosts/xxx/yyy/ <any git command>

В последнее время я задаюсь вопросом, лучше ли делать это с помощью патчей git, а не с помощью plesk. Любые идеи или инструкции?

person Pelayo    schedule 23.07.2020

По словам члена команды Plesk:

Когда вы используете удаленный репозиторий, предполагается следующий сценарий: вы отправляете изменения в этот удаленный репозиторий, а затем Plesk извлекает их из удаленного репозитория и развертывает на вашем веб-сайте.

Функциональность фиксации или отправки доступна в случае сценария, когда вы отправляете изменения из локального репозитория в Plesk, а затем Plesk развертывает изменения на вашем веб-сайте.

см.: https://talk.plesk.com/threads/commit-changes-made-on-the-server-with-git-extension-for-plesk-onyx.342362/#post-822292< /а>

person cornegigouille    schedule 28.03.2017

вы можете заархивировать и загрузить папку веб-сайта с сервера, распаковать ее на локальный хост и отправить на git.

person user3434986    schedule 14.01.2020
comment
Чтобы сделать этот ответ более полезным для читателей, рассмотрите возможность его уточнения и приведите пример. - person entpnerd; 15.01.2020