PhpStorm - как загрузить только измененные файлы?
У меня есть проект в PhpStorm. Я нажимаю upload to ftp
в корневой папке, и все файлы загружаются на сервер. Затем я работаю над этим проектом - скажем, модифицируя один файл.
Когда я нажимаю upload to ftp
сейчас, я вижу, что все файлы загружаются снова, но после последней загрузки они не изменены.
Я не хочу загружать автоматически или явное действие сохранения. Установка перезаписать обновленные файлы в settings → deployment → options
НЕ отмечена.
Синхронизация с развернутым не является решением, потому что проект огромен. ant Сравнение каждого файла по содержимому - это полная трата ресурсов и времени.
Как загрузить только измененные файлы?
Ответы
Ответ 1
Прежде всего, я не рекомендую использовать FTP для проектов, где требуется безопасность. (По FTP-подключению пароль и данные перемещаются в незашифрованном формате, поэтому его можно легко украсть. только исключение, когда загруженные файлы (возможно, пакеты) подписаны, и на сервере перед тем, как делать что-либо с ними, проверяется цифровая подпись. Afaik. PHAR это lib по умолчанию, но относительно легко шифровать и подписывать любой zip файл, если вы помещаете подпись в имя файла. Не путайте цифровую подпись с хешем md5 или sha1.)
Простыми проектами с FTP я использую git-ftp.
Установка (по окнам, но я думаю, что она работает и с каждой системой)
git bash
$ cd ~
$ git clone https://github.com/git-ftp/git-ftp git-ftp.git
$ cd git-ftp.git && chmod +x git-ftp
$ cp ~/git-ftp.git/git-ftp /bin/git-ftp
Конфигурация
.git/config
[git-ftp "myscope"]
url = ftp.domain.com/subdir
user = user
password = pass
Инициализация
git-ftp catchup -s myscope //by this the FTP and the local copy must be in perfect sync
Загрузить
git ftp push -s myscope
Вам нужно использовать файл .git-ftp-ignore
, чтобы определить, что вы не хотите загружать.
Обычно я использую git -ftp с git слиянием и фиксацией.
.git/hooks/post-commit
.git/hooks/post-merge
#!/bin/sh
branch=`git rev-parse --abbrev-ref HEAD`
if [ $branch == "master" ]; then
git ftp push -s myscope
fi
С этими git -ftp автоматически загружается любыми изменениями ведущей ветки. Ofc Я использую основную ветку только для релизов, для разработки я использую другие ветки...
Ответ 2
Перейдите в Файл > Настройки, в Параметры проекта выберите Развертывание. Добавьте FTP-сервер и пометьте его по умолчанию. Нажмите "ОК", чтобы закрыть диалоговое окно.
Теперь перейдите в Инструменты > Развертывание > Параметры. Выберите триггер действия, где вы видите:
Автоматически загружать измененные файлы на сервер по умолчанию
Надеюсь, это поможет!
http://www.jetbrains.com/phpstorm/webhelp/uploading-and-downloading-files.html#automaticUploadOnUpdate
Ответ 3
Соглашения о лучшей практике:
PHPStorm разработан вокруг того, что обычно считается "Лучшей практикой". Имея это в виду, многие аспекты развертывания лучше всего использовать, имея систему контроля версий. При фиксации через PHPStorm диалоговое окно фиксации предоставляет опции для явного развертывания файлов в списке изменений на конкретном сервере (настройки по умолчанию настраиваются)
Альтернатива 1:
Существует опция "Sync with Deployed to yourhost", которая может использоваться для сравнения файлов удаленного сервера с вашими локальными файлами. "Панель проекта" → (папка или файл правой кнопки мыши) → Развертывание → "Синхронизация с помощью развертывания..."
Эта опция запускает приложение diff, которое сравнивает выбранные файлы/папки и подсказки о том, какие действия следует предпринять (то есть направление синхронизации на/с сервера развертывания)
Я использую эту функцию только для целевых наборов файлов, поскольку у нее есть проблемы с производительностью с большими наборами файлов (например, весь проект в моем случае).
Альтернатива 2:
Для небольших наборов файлов. Включите автоматическое развертывание временно с опцией "Явное сохранение", а затем сохраните ваши файлы.
Ответ 4
При включенной автоматической загрузке она автоматически загружает файлы даже до того, как я сделаю все изменения в файлах PHP, и до того, как я даже нажмите кнопку SAVE и вы получите файлы INCOMPLETE script. Он также загружает файлы на другие вкладки. Похоже, нет точного контроля над загрузками в PhpStorm.
Ответ 5
зафиксируйте ваш проект с помощью PHPStorm (Ctrl + K)
это откроет окно с большим количеством опций, чтобы облегчить вам совершение
также есть вкладка "После фиксации", на которой вы можете выбрать серверы по умолчанию, которые вы предварительно настроили (Инструмент> Развертывание), для загрузки файлов на
Таким образом, с помощью VCS на сервер будут загружены только измененные файлы.