AppCode 2023.1 ヘルプ

Git リポジトリに変更をコミットしてプッシュする

Git リポジトリに新しいファイルを追加した後、またはすでに Git バージョン管理下にある変更されたファイルを追加し、それらの現在の状態に満足したら、作業の結果を共有できます。これには、リポジトリのスナップショットをプロジェクト履歴に記録するためにローカルにコミットしてから、プッシュをリモートリポジトリにコミットして、他のユーザーが利用できるようにすることが含まれます。

Git ユーザー名を設定する

Git は、コミットを ID に関連付けるために、ユーザー名を知っている必要があります。ユーザー名を設定していない場合、AppCode は、最初に変更をコミットしようとしたときに、ユーザー名を指定するように求めます。

  • ターミナルを開き、次のいずれかのコマンドを実行します。

    • マシン上のすべての Git リポジトリに名前を設定するには、$ git config --global user.name "John Smith" を使用します

    • 単一のリポジトリの名前を設定するには、$ git config user.name "John Smith" を使用します

変更をローカルでコミットする

  1. 左側にある垂直コミットツールウィンドウ Alt+0 を開きます。

    Commit tool window
  2. 変更をコミットする準備ができたら、対応するファイルまたは変更リスト全体を選択します。

    Ctrl+K を押すと、アクティブな変更リスト全体が選択されます。

    バージョン管理外ファイルノードでファイルを選択することもできます。AppCode はこれらのファイルを 1 ステップでステージングしてコミットします。

  3. 個別のコミットを作成するのではなく、ローカルの変更を最新のコミットに追加する場合は、修正オプションを選択します。

  4. コミットメッセージを入力します。Commit message history button をクリックして、最近のコミットメッセージのリストから選択できます。

    コミットをプッシュする前に、後でコミットメッセージを編集することもできます。

  5. コミットチェックを実行する、コミット後にサーバーにファイルをアップロードする、または詳細オプションを使用してコミットする必要がある場合は、右下隅にある the Gear icon をクリックします。

    Advanced commit options popup

    次のオプションが利用可能です:

    • 作成者 : 他の人による変更をコミットしている場合は、これらの変更の作成者を指定できます。

    • Sign-off コミット : チェックインしようとしている変更が自分によって行われたことを証明するためにコミットをサインオフするか、コミットするコードの責任を取るかを選択します。

      このオプションを有効にすると、コミットメッセージの最後に次の行が自動的に追加されます。Signed off by: <username>

    • コミットチェック領域で、選択したファイルをローカルリポジトリにコミットするときに AppCode で実行するアクションを選択します。

      次のオプションが利用可能です:

      • コードの整形 : プロジェクトコードのスタイル設定に従ってコードフォーマットを実行します。

      • コードの再配置 : 配置ルールの設定に従ってコードを再配置します。

      • インポートの最適化 : 冗長なインポートステートメントを削除します。

      • コードの解析 : それらをコミットしながら変更されたファイルを分析します。プロファイルの選択をクリックして、IDE がインスペクションを実行するインスペクションプロファイルを選択します。

      • TODO の確認 (<フィルター名>) : 指定されたフィルターに一致する TODO アイテムを確認します。構成をクリックして既存の TODO フィルターを選択するか、TODO 設定ページを開いて適用する新しいフィルターを定義します。

      • クリーンアップ : コードクリーンアップインスペクションからのクイックフィックスをバッチ適用します。プロファイルの選択をクリックして、IDE がインスペクションを実行するプロファイルを選択します。

      • テストの実行 : コミットチェックとしてテストを実行しますテストの実行の近くにある構成の選択をクリックし、実行する構成を選択します。

      • コピーライトの更新 : 選択したコピーライトプロファイルとスコープの組み合わせに従って、コピーライト表示を追加または更新します。

  6. 準備ができたら、コミットまたはコミットとプッシュCtrl+Alt+K)をクリックして、コミットの直後に変更をリモートリポジトリにプッシュします。リモートにプッシュされる前に、現在のコミットと他のすべてのコミットを確認できます。

ファイルの一部をコミットする

特定のタスクに関連する変更を加えると、同じファイルに影響を与える他の無関係なコード変更も適用される場合があります。このような変更をすべて 1 つのコミットに含めることは、確認、リバートチェリーピックなどを行うのが困難になるため、適切なオプションではない場合があります。

AppCode では、次のいずれかの方法で、このような変更を個別にコミットできます。

コミットしたいチャンクを選択する

  1. 垂直コミットツールウィンドウ Alt+0 を開きます。

  2. 選択したファイルのリポジトリバージョンとローカルバージョンの違いを表示するには、コミットツールウィンドウ Alt+0 で、ツールバーの the Diff icon をクリックするか、Ctrl+D を押します。

  3. コミットしたい、変更した、新しく追加したコードの各チャンクの横にあるチェックボックスを選択し、その他の変更を選択しないままにします。

    Partial commit dialog
  4. コミットをクリックしてください。選択されていない変更は現在の変更リストに残るため、別々にコミットすることができます。

変更を異なる変更リストに入れる

  1. エディターでファイルを変更するときは、ガターで対応する変更マーカーをクリックします。

  2. 表示されるツールバーで、変更したコードチャンクのターゲット変更リストを選択します(または新しい変更リストを作成します)。

    Partial commit changelists
  3. 各変更リストを別々にコミットします。

Git ステージングエリアを使用して変更をコミットする

変更されたファイルが自動的にステージングされる変更リストを使用する代わりに、コミットのために変更をステージング(英語)するという概念に慣れている場合は、IDE 設定 Ctrl+Alt+Sバージョン管理 | Git ページでステージングエリアを有効化オプションを選択します。

コミットツールウィンドウは次のようになります。

Git staging area

ステージングエリアを使用すると、同じファイルへの変更(重複する変更を含む)を簡単にコミットし、エディターからフォーカスを切り替えることなく、どの変更がすでにステージングされているかを確認できます。

コミットのステージ変更

  1. 以下のいずれか 1 つを実行します:

    • ファイル全体をステージングするには、コミットツールウィンドウ Alt+0 で、このファイルを選択し、その隣の右側にある the Add button をクリックするか、Ctrl+Alt+A を押します。

      Stage from the Commit tool window
    • ファイル内の特定のチャンクをステージングするには、エディターで、変更されたチャンクの横にあるガターの変更マーカーをクリックし、ステージをクリックします。

      Stage change from the editor

      段階的な変更(AppCode の外部から段階的な変更を含む)は、エディターで境界線の形をした変更マーカーでマークされます。

      Gutter marker for staged changes
    • コミットツールウィンドウ Alt+0 で、コードチャンクの代わりに単一行のように細かい変更をステージングしたり、単一行への多数の変更の 1 つをステージングしたりするには、変更を含むファイルを選択し、コンテキストメニューから HEAD、ステージ済み、ローカルバージョンの比較を選択します。

      これにより、3 方向の差分ビューアーが開きます。左側のペインにはリポジトリのバージョンが表示され、右側のペインにはローカルバージョンが表示され、中央のペインは、ステージングする変更を加えることができる完全に機能するエディターです。

      Stage changes interactively
  2. 準備ができたら、変更をローカルでコミットする説明に従って変更をコミットします。

変更をリモートリポジトリにプッシュする

変更をプッシュする前に、リモートと同期し、競合を回避するためにリポジトリのローカルコピーが最新であることを確認してください。

AppCode を使用すると、任意のブランチから追跡対象のブランチ(英語)またはその他のリモートブランチに変更をアップロードできます。

  1. 以下のいずれか 1 つを実行します:

    • 現在のブランチから変更をプッシュするには、 Ctrl+Shift+K をプッシュするか、メインメニューから Git | プッシュを選択します。

    • リモートを持つローカルブランチから変更をプッシュするには、ブランチポップアップでこのブランチを選択し、アクションのリストからプッシュを選択します。

    コミットのプッシュダイアログが開き、すべての Git リポジトリ(マルチリポジトリプロジェクトの場合)が表示され、最後のプッシュ以降に各リポジトリの現在のブランチで行われたすべてのコミットが一覧表示されます。

    同期的に制御されない複数のリポジトリを使用するプロジェクトがある場合、現在のリポジトリのみがデフォルトで選択されます(同期リポジトリ制御を有効にする方法の詳細については、バージョン管理設定: Git を参照してください)。

  2. リポジトリにリモートがない場合は、リモートの定義リンクが表示されます。このリンクをクリックして、表示されるダイアログでリモートの名前と URL を指定します。保存され、後で Git | リモートの管理で編集できます(詳細はリモートリポジトリを追加するを参照)。

  3. プッシュ先のターゲットブランチを変更したい場合は、ブランチ名をクリックします。ラベルがテキストフィールドに変わり、そこで既存のブランチ名を入力するか、新しいブランチを作成できます。右下隅にあるすべてのターゲットを編集リンクをクリックして、すべてのブランチ名を同時に編集することもできます。

    ローカルのブランチを変更することはできません。選択された各リポジトリの現在のブランチがプッシュされます。

  4. 行ったコミットがいくつかあるが、まだリモートブランチにプッシュしたくない場合は、Git ツールウィンドウのログタブで、最後にプッシュしたいコミットを選択し、アクションのリストからここまでのすべてをプッシュ…オプションを選択します。

    コミットのプッシュダイアログが開き、選択したコミットハッシュまでのすべてのコミットが表示されます。

  5. 変更をプッシュする前にプレビューしたい場合は、必要なコミットを選択してください。右側のペインには、選択したコミットに含まれている変更が表示されます。ツールバーのボタンを使ってコミットの詳細を調べることができます。

    コミットの作成者が現在のユーザーと異なる場合、このコミットはアスタリスクでマークされています。

  6. 準備ができたらプッシュボタンをクリックし、ドロップダウンメニューから実行する操作を選択します: プッシュまたは強制プッシュpush --force-with-lease と同等)。

    これらの選択オプションは、現在のブランチが保護されたブランチフィールドにリストされていない場合にのみ使用可能です(バージョン管理設定: Git を参照)。それ以外の場合は、push 操作のみを実行できます。

プッシュが拒否された場合、作業コピーを更新する

作業コピーが古くなったためにプッシュが拒否された場合、環境設定ダイアログの Git 設定ページで現在のブランチのプッシュが拒否された場合に自動更新するオプションが選択されていなければ、AppCode はプッシュが拒否されましたダイアログを表示します。以下を実施:

  1. プロジェクトで複数の Git リポジトリを使用している場合は、それらのうちどれを更新するかを指定します。プッシュが拒否されたかどうかに関係なく、すべてのリポジトリを更新する場合は、すべてのリポジトリを更新するオプションを選択します。このオプションをオフにすると、影響を受けるリポジトリのみが更新されます。

  2. このダイアログで選択した更新方法を使用してプッシュが次回拒否されたときに、AppCode が更新手順をサイレントに適用するようにするには、更新方法の選択を記憶し、今後確認なしで更新するオプションを選択します。

    このダイアログを終了すると、環境設定ダイアログの Git 設定ページにある現在のブランチのプッシュが拒否された場合に自動更新するチェックボックスが選択され、適用された更新方法がデフォルトの方法になります。

    更新方法を変更するには、このオプションの選択を解除して、現在のブランチのプッシュが次に拒否されたときにプッシュが拒否されましたダイアログを呼び出し、別の更新手順を適用して、もう一度更新方法の選択を記憶するオプションを選択します。

  3. リベースまたはマージボタンをそれぞれクリックして、更新方法(リベース(英語)またはマージ(英語))を選択します。

強制プッシュを使用する必要があるのはいつですか?

プッシュを実行すると、リモートリポジトリに欠落している変更があり、リポジトリのローカルコピーで上書きする場合、Git は操作の補完を拒否します。通常、変更で更新する前に、プルを実行してリモートと同期する必要があります。

--force push コマンドはこのチェックを無効にし、リモートリポジトリを上書きできるようにします。これにより、その履歴が消去され、データが失われます。内部的には、プッシュを強制することを選択すると、AppCode は push --force-with-lease 操作を実行します。これは、他の人のコミットを上書きしないようにするためのより安全なオプションです(プッシュオプションの詳細については、git push(英語) を参照してください)。

それでも --force push を実行する必要がある可能性がある状況は、プッシュされたブランチをリベースしてから、それをリモートサーバーにプッシュしたい場合です。この場合、プッシュしようとすると、リモート参照はローカル参照の祖先ではないため、Git は変更を拒否します。この状況でプルを実行すると、ブランチのコピーが 2 つ作成され、マージする必要があります。

関連ページ:

Git リポジトリのセットアップ

既存の Git リポジトリのクローンを作成するか、既存のプロジェクトを Git バージョン管理下に置くと、AppCode は Git がコンピューターにインストールされているかどうかを自動的に検出します。IDE が Git 実行可能ファイルを見つけられない場合は、ダウンロードすることをお勧めします。AppCode は、Windows10 バージョン 2004 で使用可能な Windows Subsystem for Linux 2 (WSL2) の Git をサポートします。Git が Wind...

ターミナル

AppCode には、IDE 内からコマンドラインシェルを操作するための組み込みターミナルエミュレータが含まれています。専用のターミナルアプリケーションに切り替えることなく、Git コマンドの実行、ファイルのアクセス許可の設定、その他のコマンドラインタスクの実行に使用します。ターミナルプラグインを有効にするこの機能は、デフォルトで AppCode にバンドルされて有効になっているターミナルプラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してくだ...

Git プロジェクト履歴を編集する

Git を使用すると、プロジェクト履歴を編集できます。これは、機能ブランチで作業していて、他の人と共有する前に、それをクリーンアップして希望どおりに表示したい場合に便利です。例: コミットメッセージを編集したり、同じ機能に関連する小さなコミットをまとめたり、無関係な変更を含むコミットを個別のコミットに分割したり、前のコミットに変更を追加したりできます。コミットメッセージを編集する:変更する必要があるのがコミットメッセージだけであれば、このコミットをプッシュする前にそれを編集できます。Git ツー...

コードスタイル

スキーム:この領域では、コードスタイルスキームを選択し、必要に応じて変更します。コードスタイルスキームの設定は、AppCode がコードを生成、リファクタリング、再フォーマットするたびに自動的に適用されます。IDE には、プロジェクトスキームとデフォルトスキームの 2 つの定義済みスキームが付属しています。プロジェクトスキームでは、構成する設定は現在のプロジェクトにのみ適用されます。これらの設定は、.idea の codeStyles フォルダーに保存され、VCS を介してプロジェクトと共有されます...

コードの再フォーマットと再配置

AppCode を使用すると、現在のコードスタイルスキームで指定した要件に従ってコードを再フォーマットできます。コードの一部、ファイル全体、ファイルのグループ、ディレクトリ、モジュールを再フォーマットできます。コードの一部または一部のファイルを再フォーマットから除外することもできます。コードフラグメントを再フォーマットするエディターで、再フォーマットしたいコードフラグメントを選択します。再フォーマットする前に、選択したコードに適用されているコードスタイル設定を確認できます。を押してコードスタイ...

プロファイルを構成する

インスペクションプロファイルは、有効なインスペクション、これらのインスペクションが分析するファイルのスコープ、およびインスペクション重大度設定に関する情報を保持します。AppCode には、2 種類のプロファイルがあります。プロファイル IDE に保管は、AppCode 構成ディレクトリの inspection フォルダーに保存され、すべてのプロジェクトで使用できます。プロジェクトにコピーオプションを使用して、IDE プロファイルを現在のプロジェクトにコピーできます。プロファイルプロジェクトに保管は、....