Подтвердить что ты не робот

PhpStorm - как загрузить только измененные файлы?

У меня есть проект в PhpStorm. Я нажимаю upload to ftp в корневой папке, и все файлы загружаются на сервер. Затем я работаю над этим проектом - скажем, модифицируя один файл. Когда я нажимаю upload to ftp сейчас, я вижу, что все файлы загружаются снова, но после последней загрузки они не изменены.

Я не хочу загружать автоматически или явное действие сохранения. Установка перезаписать обновленные файлы в settings → deployment → options НЕ отмечена.

Синхронизация с развернутым не является решением, потому что проект огромен. ant Сравнение каждого файла по содержимому - это полная трата ресурсов и времени.

Как загрузить только измененные файлы?

4b9b3361

Ответ 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 на сервер будут загружены только измененные файлы.