13

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

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

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

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

4

5 に答える 5

10

File > Settingsに移動し、Project SettingsでDeploymentを選択します。FTP サーバーを追加し、デフォルトとしてマークします。[OK] をクリックして、ダイアログ ウィンドウを閉じます。

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

それが役立つことを願っています!

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

于 2014-09-13T22:19:56.987 に答える
1

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

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

このオプションは、選択したファイル/フォルダーを比較し、実行する必要があるアクション (展開サーバーとの間の同期方向など) を示す差分アプリケーションを起動します。

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

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

于 2013-08-08T16:25:27.617 に答える
1

まず第一に、セキュリティが必要なプロジェクトに 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 を使用すると、マスター ブランチの変更によって自動的にアップロードされます。多くの場合、リリースにはマスター ブランチのみを使用し、開発には別のブランチを使用します...

于 2014-02-03T04:04:13.283 に答える
0

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

于 2016-01-09T19:17:34.383 に答える