Git リポジトリに変更をコミットしてプッシュする
Git リポジトリに新しいファイルを追加するか、すでに Git バージョン管理下にあるファイルを変更し、現在の状態に満足したら、作業の結果を共有できます。これには、ローカルにコミットしてリポジトリのスナップショットをプロジェクト履歴に記録し、次にリモートリポジトリにプッシュして他のユーザーが使用できるようにすることが含まれます。
Git ユーザー名を設定する
Git は、コミットを ID に関連付けるために、ユーザー名を知っている必要があります。ユーザー名を設定していない場合、PhpStorm は、最初に変更をコミットしようとしたときに、ユーザー名を指定するように求めます。
ターミナルを開き、次のいずれかのコマンドを実行します。
マシン上のすべての Git リポジトリに名前を設定するには、
$ git config --global user.name "John Smith"
を使用します単一のリポジトリの名前を設定するには、
$ git config user.name "John Smith"
を使用します
変更をローカルでコミットする
左側にある垂直コミットツールウィンドウ Alt+0 を開きます。
変更をコミットする準備ができたら、対応するファイルまたは変更リスト全体を選択します。
Ctrl+K を押すと、アクティブな変更リスト全体が選択されます。
バージョン管理外ファイルノードでファイルを選択することもできます。PhpStorm はこれらのファイルを 1 ステップでステージングしてコミットします。
個別のコミットを作成するのではなく、ローカルの変更を最新のコミットに追加する場合は、修正オプションを選択します。
コミットメッセージを入力します。 をクリックして、最近のコミットメッセージのリストから選択できます。
コミットをプッシュする前に、後でコミットメッセージを編集することもできます。
コミットチェックを実行する、コミット後にサーバーにファイルをアップロードする、または詳細オプションを使用してコミットする必要がある場合は、右下隅にある をクリックします。
次のオプションが利用可能です:
作成者 : 他の人による変更をコミットしている場合は、これらの変更の作成者を指定できます。
Sign-off コミット : チェックインしようとしている変更が自分によって行われたことを証明するためにコミットをサインオフするか、コミットするコードの責任を取るかを選択します。
このオプションを有効にすると、コミットメッセージの最後に次の行が自動的に追加されます。Signed off by: <username>
コミットチェック領域で、選択したファイルをローカルリポジトリにコミットする前に PhpStorm で実行するアクションを選択します。
次のオプションが利用可能です:
コードの整形 : プロジェクトコードのスタイル設定に従ってコードフォーマットを実行します。
コードの再配置 : 配置ルールの設定に従ってコードを再配置します。
インポートの最適化 : 冗長なインポートステートメントを削除します。
クリーンアップ : コードクリーンアップインスペクションからのクイックフィックスをバッチ適用します。プロファイルの選択をクリックして、IDE がインスペクションを実行するプロファイルを選択します。
コピーライトの更新 : 選択したコピーライトプロファイルとスコープの組み合わせに従って、コピーライト表示を追加または更新します。
悪意のある依存関係を確認 : プロジェクトで宣言されている可能性のある悪意のある Composer および npm、pnpm、Yarn 依存関係を検索します。
高度なコミットチェックエリアでは、次のオプションが利用できます。
コミットが完了した後に高度なチェックを実行する : このオプションを有効にすると、コミットが完了した後に、選択した高度なコミットチェックが実行されます。
このオプションを有効にすると、高度なコミットチェックの一部が失敗した場合でも、変更はコミットされます。
コードの解析 : それらをコミットしながら変更されたファイルを分析します。プロファイルの選択をクリックして、IDE がインスペクションを実行するインスペクションプロファイルを選択します。
TODO の確認 : 指定されたフィルターに一致する TODO アイテムを確認します。構成をクリックして既存の TODO フィルターを選択するか、TODO 設定ページを開いて適用する新しいフィルターを定義します。
テストの実行 : コミットチェックとしてテストを実行します。テストの実行の近くにある構成の選択をクリックし、実行する構成を選択します。
コミット後領域では、コミットされたファイルをローカルまたはリモートホスト、マウントされたディスク、ディレクトリにアップロードするために使用するサーバーアクセス構成またはサーバーグループを選択できます。詳細については、「デプロイ」を参照してください。
次のオプションが利用可能です:
ファイルのアップロード : コミットされたファイルをローカルまたはリモートホスト、マウントされたディスク、ディレクトリにアップロードするために使用するサーバーアクセス構成またはサーバーグループを選択します。
アップロードを抑止するには、なしを選択します。
リストにサーバー構成を追加するには、 をクリックし、表示されるデプロイダイアログで必要なフィールドに入力します。
このリストは、FTP/SFTP/WebDAV 接続プラグインが有効な場合にのみ使用できます。
常に選択したサーバーまたはサーバーのグループを使用 : 常に選択したサーバーまたはサーバーグループにファイルをアップロードしてください。
このチェックボックスは、FTP/SFTP/WebDAV 接続プラグインが有効な場合にのみ使用できます。
準備ができたら、コミットまたはコミットとプッシュ(Ctrl+Alt+K)をクリックして、コミットの直後に変更をリモートリポジトリにプッシュします。リモートにプッシュされる前に、現在のコミットと他のすべてのコミットを確認できます。
ファイルの一部をコミットする
特定のタスクに関連する変更を加えると、同じファイルに影響を与える他の無関係なコード変更も適用される場合があります。このような変更をすべて 1 つのコミットに含めることは、確認、リバート、チェリーピックなどを行うのが困難になるため、適切なオプションではない場合があります。
PhpStorm では、次のいずれかの方法で、このような変更を個別にコミットできます。
変更のコミットダイアログで、コミットに含める変更されたコードチャンクと行を選択し、後でコミットできるように他の変更を保留のままにしておきます。
コードを編集するときに、さまざまなコードチャンクをその場でさまざまな変更リストに入れ、これらの変更リストを個別にコミットします。
コミットしたいチャンクと特定の行を選択する
コミットツールウィンドウ Alt+0 を開きます。
選択したファイルのリポジトリバージョンとローカルバージョンの違いを表示するには、コミットツールウィンドウ Alt+0 で、ツールバーの をクリックするか、Ctrl+D を押します。
コミットしたい、変更した、新しく追加したコードの各チャンクの横にあるチェックボックスを選択し、その他の変更を選択しないままにします。
チャンクから特定の行のみをコミットする場合は、含める行を右クリックし、チャンクを分割してコミットに選択した行を含めるを選択します。
または、余白の上にマウスを移動し、コミットに含める行またはコミットから除外する行の横にあるチェックボックスをオンまたはオフにします。
コミットをクリックしてください。選択されていない変更は現在の変更リストに残るため、別々にコミットすることができます。
エディターから選択した変更をコミットする
すでに変更をコミットした後で何かを忘れていたことに気付いた場合は、エディターから直接更新をすぐにコミットできます。
エディターでファイルを変更するときは、ガターで対応する変更マーカーをクリックします。
表示されるツールバーにコミットメッセージを入力し、 この変更をコミットするをクリックします。
コミットメッセージフィールドで 修正をクリックすると、ローカルの変更が最新のコミットに追加されます。
変更を異なる変更リストに入れる
エディターでファイルを変更するときは、ガターで対応する変更マーカーをクリックします。
表示されるツールバーで、変更したコードチャンクのターゲット変更リストを選択します(または新しい変更リストを作成します)。
各変更リストを別々にコミットします。
Git ステージングエリアを使用して変更をコミットする
変更されたファイルが自動的にステージングされる変更リストを使用するのではなく、コミットのために変更をステージングする(英語)という概念に慣れている場合は、Ctrl+Alt+S を押して設定を開き、バージョン管理 | Git を選択してから、ステージングエリアを有効化チェックボックスを選択します。
コミットツールウィンドウは次のようになります。
ステージングエリアを使用すると、同じファイルへの変更(重複する変更を含む)を簡単にコミットし、エディターからフォーカスを切り替えることなく、どの変更がすでにステージングされているかを確認できます。
コミットのステージ変更
以下のいずれか 1 つを実行します:
ファイル全体をステージングするには、コミットツールウィンドウ Alt+0 で、このファイルを選択し、その隣の右側にある をクリックするか、Ctrl+Alt+A を押します。
ファイル内の特定のチャンクをステージングするには、エディターで、変更されたチャンクの横にあるガターの変更マーカーをクリックし、ステージをクリックします。
ステージングされた変更 (PhpStorm 外部からステージングされた変更を含む) は、エディターで白抜きの変更マーカーでマークされます。
コードチャンクではなく単一行のような詳細な変更、または単一行に対する複数の変更のうちの 1 つをステージングするには、コミットツールウィンドウ Alt+0 で、変更を含むファイルを選択し、コンテキストメニューから HEAD、ステージ済み、ローカルバージョンの比較を選択します。
これにより、3 方向の差分ビューアーが開きます。左側のペインにはリポジトリのバージョンが表示され、右側のペインにはローカルバージョンが表示され、中央のペインはステージングする変更を加えることができる完全な機能のエディターです。
準備ができたら、変更をローカルでコミットする説明に従って変更をコミットします。
変更をリモートリポジトリにプッシュする
変更をプッシュする前に、リモートと同期し、競合を避けるためにリポジトリのローカルコピーが最新であることを確認してください。
PhpStorm を使用すると、任意のブランチから追跡対象のブランチ(英語)またはその他のリモートブランチに変更をアップロードできます。
以下のいずれか 1 つを実行します:
現在のブランチから変更をプッシュするには、 Ctrl+Shift+K をプッシュするか、メインメニューから を選択します。
リモートを持つローカルブランチから変更をプッシュするには、ブランチポップアップでこのブランチを選択し、アクションのリストからプッシュを選択します。
コミットのプッシュダイアログが開き、すべての Git リポジトリ(マルチリポジトリプロジェクトの場合)が表示され、最後のプッシュ以降に各リポジトリの現在のブランチで行われたすべてのコミットが一覧表示されます。
同期的に制御されていない複数のリポジトリを使用するプロジェクトがある場合、デフォルトでは現在のリポジトリのみが選択されます (同期リポジトリ制御の有効化の詳細については、バージョン管理設定: Git を参照してください)。
リポジトリにリモートがない場合は、リモートの定義リンクが表示されます。このリンクをクリックし、表示されるダイアログでリモートの名前と URL を指定します。これは保存され、後で 経由で編集できます (詳細については、リモートリポジトリを追加するを参照してください)。
プッシュ先のターゲットブランチを変更したい場合は、ブランチ名をクリックします。ラベルがテキストフィールドに変わり、そこで既存のブランチ名を入力するか、新しいブランチを作成できます。右下隅にあるすべてのターゲットを編集リンクをクリックして、すべてのブランチ名を同時に編集することもできます。
ローカルのブランチを変更することはできません。選択された各リポジトリの現在のブランチがプッシュされます。
行ったコミットがいくつかあるが、まだリモートブランチにプッシュしたくない場合は、Git ツールウィンドウのログタブで、最後にプッシュしたいコミットを選択し、アクションのリストからここまでのすべてをプッシュオプションを選択します。
コミットのプッシュダイアログが開き、選択したコミットハッシュまでのすべてのコミットが表示されます。
変更をプッシュする前にプレビューしたい場合は、必要なコミットを選択してください。右側のペインには、選択したコミットに含まれている変更が表示されます。ツールバーのボタンを使ってコミットの詳細を調べることができます。
コミットの作成者が現在のユーザーと異なる場合、このコミットはアスタリスクでマークされています。
準備ができたらプッシュボタンをクリックし、ドロップダウンメニューから実行する操作を選択します: プッシュまたは強制プッシュ(
push --force-with-lease
と同等)。これらの選択オプションは、現在のブランチが保護されたブランチフィールドにリストされていない場合にのみ使用できます ( バージョン管理設定: Git を参照)。それ以外の場合は、
push
操作のみを実行できます。
プッシュが拒否された場合、作業コピーを更新する
作業コピーが古くなったためにプッシュが拒否された場合、設定ダイアログの Git 設定ページで現在のブランチのプッシュが拒否された場合に自動更新するオプションが選択されていなければ、PhpStorm はプッシュが拒否されましたダイアログを表示します。以下を実施:
プロジェクトで複数の Git リポジトリを使用している場合は、それらのうちどれを更新するかを指定します。プッシュが拒否されたかどうかに関係なく、すべてのリポジトリを更新する場合は、すべてのリポジトリを更新するオプションを選択します。このオプションをオフにすると、影響を受けるリポジトリのみが更新されます。
このダイアログで選択した更新方法を使用してプッシュが次回拒否されたときに、PhpStorm が更新手順をサイレントに適用するようにするには、更新方法の選択を記憶し、今後確認なしで更新するオプションを選択します。
このダイアログを終了すると、設定ダイアログの Git 設定ページにある現在のブランチのプッシュが拒否された場合に自動更新するチェックボックスが選択され、適用された更新方法がデフォルトの方法になります。
更新方法を変更するには、このオプションの選択を解除して、現在のブランチのプッシュが次に拒否されたときにプッシュが拒否されましたダイアログを呼び出し、別の更新手順を適用して、もう一度更新方法の選択を記憶するオプションを選択します。
強制プッシュを使用する必要があるのはいつですか?
プッシュを実行すると、リモートリポジトリに欠落している変更があり、リポジトリのローカルコピーで上書きする場合、Git は操作の補完を拒否します。通常、変更で更新する前に、プルを実行してリモートと同期する必要があります。
--force push
コマンドを使用すると、このチェックが無効になり、リモートリポジトリを上書きできるため、履歴が消去され、データ損失が発生します。内部では、強制プッシュを選択すると、PhpStorm は push --force-with-lease
操作を実行します。これは、他の人のコミットを上書きしないようにするためのより安全なオプションです (プッシュオプションの詳細については、git Push(英語) を参照してください)。
それでも --force push
を実行する必要がある可能性がある状況は、プッシュされたブランチをリベースしてから、それをリモートサーバーにプッシュしたい場合です。この場合、プッシュしようとすると、リモート参照はローカル参照の祖先ではないため、Git は変更を拒否します。この状況でプルを実行すると、ブランチのコピーが 2 つ作成され、マージする必要があります。
関連ページ:
Git リポジトリのセットアップ
既存の Git リポジトリのクローンを作成するか、既存のプロジェクトを Git バージョンコントロール下に置くと、PhpStorm はコンピューターに Git がインストールされているかどうかを自動的に検出します。IDE が Git 実行可能ファイルを見つけられない場合、それをダウンロードすることを提案します。PhpStorm は、Windows10 バージョン 2004 で使用可能な Windows Subsystem for Linux 2(WSL2)の Git をサポートします。Git が...
ターミナル
PhpStorm には、IDE 内からコマンドラインシェルを操作するための組み込みターミナルエミュレータが含まれています。専用のターミナルアプリケーションに切り替えることなく、Git コマンドの実行、ファイルのアクセス許可の設定、その他のコマンドラインタスクの実行に使用します。ターミナルプラグインを有効にするこの機能は、デフォルトで PhpStorm にバンドルされて有効になっているターミナルプラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認して...
Git プロジェクト履歴を編集する
Git を使用すると、プロジェクト履歴を編集できます。これは、機能ブランチで作業していて、他の人と共有する前に、それをクリーンアップして希望どおりに表示したい場合に便利です。例: コミットメッセージを編集したり、同じ機能に関連する小さなコミットをまとめたり、無関係な変更を含むコミットを個別のコミットに分割したり、前のコミットに変更を追加したりできます。コミットメッセージを編集する:変更する必要があるのがコミットメッセージだけであれば、このコミットをプッシュする前にそれを編集できます。Git ツー...
コードの整形
PhpStorm を使用すると、現在のコードスタイルスキームまたは .editorconfig ファイルで指定した要件に従ってコードを再フォーマットできます。で定義されていないものがあれば、プロジェクト設定から取得されます。コードの一部、ファイル全体、ファイルのグループ、ディレクトリを再フォーマットできます。コードの一部または一部のファイルを再フォーマットから除外することもできます。コードフラグメントを再フォーマットするエディターで、再フォーマットしたいコードフラグメントを選択します。再フォーマット...
プロファイルを構成する
インスペクションプロファイルは、有効なインスペクション、これらのインスペクションが分析するファイルのスコープ、およびインスペクション重大度設定に関する情報を保持します。PhpStorm には、2 種類のプロファイルがあります。プロファイル IDE に保管は、PhpStorm 構成ディレクトリの inspection フォルダーに保存され、すべてのプロジェクトで使用できます。プロジェクトにコピーオプションを使用して、IDE プロファイルを現在のプロジェクトにコピーできます。プロファイルプロジェクトに保管は...
Composer 依存関係マネージャー
PhpStorm は Composer 依存関係マネージャーと統合されています。これにより、Packagist またはカスタムリポジトリからのパッケージをプロジェクトの依存関係として宣言し、IDE から管理できます。PhpStorm は以下を提供します。一般的な Composer コマンド (init、install、update) と、その他の Composer コマンドを実行するための専用ユーザーインターフェース。コマンド出力は Composer ログコンソールに表示されます。PhpStorm プロ...