web-dev-qa-db-ja.com

PhpStorm –変更されたファイルのみをアップロードする方法は?

PhpStormにプロジェクトがあります。ルートフォルダでupload to ftpを押すと、すべてのファイルがサーバーにアップロードされます。次に、このプロジェクトに取り組みます。たとえば、1つのファイルを変更します。ここでupload to ftpを押すと、すべてのファイルが再度アップロード –であることがわかりますが、最後のアップロード後は変更されていませんです。

自動的に明示的な保存アクションにもアップロードしたくない。 settings → deployment → optionsの設定最新のファイルを上書きチェックされていませんです。

deployedとの同期は解決策ではありません。プロジェクトは巨大であり、すべてのファイルをコンテンツごとに比較することは、リソースと時間の無駄です。

変更されたファイルのみをアップロードする方法は?

13
Maug Lee

まず、セキュリティが必要なプロジェクトにFTPを使用することはお勧めしません。(FTP接続では、パスワードとデータは暗号化されていない形式で送信されます。アップロードされたファイル(おそらくパッケージ)が署名され、デジタル署名がサーバーでチェックされてから何かを行う場合の唯一の例外です。Afaik。 [〜#〜] phar [〜# 〜] はそのデフォルトのライブラリですが、ファイル名に署名を入れると、Zipファイルの暗号化と署名が比較的簡単になります。デジタル署名をmd5またはsha1ハッシュと混同しないでください。)

FTPを使用した単純なプロジェクトでは、 git-ftpを使用します

インストール(Windowsによるが、すべてのシステムでも機能すると思います)

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マージフックとコミットフックでgit-ftpを使用します。

.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を使用すると、マスターブランチの変更によって自動的にアップロードされます。多くの場合、私はリリースにのみマスターブランチを使用し、開発には別のブランチを使用します...

1
inf3rno

ファイル>設定に移動し、プロジェクト設定展開を選択します。 FTPサーバーを追加し、デフォルトとしてマークします。 [OK]をクリックしてダイアログウィンドウを閉じます。

次に、ツール>展開>オプションに移動します。表示されているアクショントリガーを選択します:変更されたファイルをデフォルトサーバーに自動的にアップロードします

お役に立てば幸いです。

http://www.jetbrains.com/phpstorm/webhelp/uploading-and-downloading-files.html#automaticUploadOnUpdate

8
fromvega

pHPStorm(Ctrl + K)を使用してプロジェクトをコミットします

それはあなたがコミットするのを容易にするためにたくさんのオプションでウィンドウを開きます

また、[コミット後]タブがあり、ファイルをアップロードするために以前に構成したデフォルトサーバー([ツール]> [展開])から選択できます。

このように、VCSの助けを借りて、変更されたファイルのみがサーバーにアップロードされます

2
Amir Karamat

ベストプラクティスの規則: PHPStormは、一般に「ベストプラクティス」と見なされるものを中心に設計されています。そのことを念頭に置いて、バージョン管理システムを導入することで、展開の多くの側面を最大限に活用できます。 PHPStormを介してコミットする場合、コミットダイアログには、チェンジリスト内のファイルを特定のサーバーに明示的にデプロイするためのオプションがあります(デフォルトは構成可能です)。

代替1:リモートサーバーファイルを比較するために使用できる「yourhostにデプロイされたものと同期する」オプションがありますローカルファイルで。 「プロジェクトペイン」->(フォルダまたはファイルを右クリック)->「デプロイメント」->「デプロイ先と同期...」

このオプションは、選択したファイル/フォルダーを比較し、実行する必要があるアクション(つまり、デプロイメントサーバーとの間の同期方向)を示唆するdiffアプリケーションを起動します。

この機能は、大きなファイルセット(私の場合はプロジェクト全体)でパフォーマンスの問題があるため、ターゲットファイルセットでのみ使用しています。

代替2:小さなファイルセットの場合。 [明示的な保存]オプションを使用して一時的に自動展開をオンにしてから、ファイルを再保存します。

1

自動アップロードをオンにすると、PHPファイルにすべての変更を加える前、および[保存]ボタンをクリックして不完全なスクリプトファイルになる前でも、ファイルが自動的にアップロードされます。他のタブページにファイルをアップロードします。PhpStormでのアップロードを正確に制御できないようです。

0
richard