IntelliJ IDEA 2024.1 ヘルプ

リモート Git リポジトリと同期する (フェッチ、プル、更新)

変更をアップストリームにプッシュして作業結果を共有する前に、リモートリポジトリと同期して、プロジェクトのローカルコピーが最新であることを確認する必要があります。これを行うには、次のいずれかの方法があります: 変更のフェッチ変更のプルプロジェクトの更新

Git ブランチポップアップは、ブランチにまだフェッチされていない受信コミットがあるかどうかを示します。

Incoming commits indicator

変更のフェッチ

アップストリームから変更をフェッチすると、リモートリポジトリと最後に同期してから行われたコミットからのすべての新しいデータがローカルコピーにダウンロードされます。この新しいデータはローカルファイルに統合されず、変更はコードに適用されません。

フェッチされた変更はリモートブランチとして保存されるため、ファイルとマージする前に変更を確認することができます。フェッチはローカル開発環境に影響を与えないためです。これは、リモートリポジトリに対するすべての変更の更新を取得する安全な方法です。

アップストリームから変更をフェッチするには 2 つの方法があります。

  • メインメニューで Git | フェッチを選択します。

  • または、ブランチポップアップを開き、右上隅の the Fetch icon をクリックします。

    Fetch icon in branches popup

このビデオを見て(英語)を使用すると、IDE でフェッチ操作がどのように実行されるかをよりよく理解できます。

ブランチの更新

特定のブランチをそのリモート追跡ブランチと同期する必要がある場合は、更新を使用します。これは、選択したブランチをフェッチして、変更を適用するための便利なショートカットです。

  • ブランチポップアップまたはバージョン管理ツールウィンドウのブランチペインで、ブランチを選択し、コンテキストメニューから更新を選択します。

IntelliJ IDEA はリモートブランチから変更をプル(英語)し、設定 | バージョン管理 | Git で選択された更新方法に応じて、ローカルブランチにリベースまたはマージします。

変更のプル

リモートで追跡されたブランチではなく、別のブランチから現在のブランチに変更を加える必要がある場合は、pull を使用します。プルすると、新しいデータをダウンロードするだけでなく、プロジェクトのローカル作業コピーに統合することもできます。

  1. メインメニューで、Git | プルに移動します。変更のプルダイアログが開きます。

    The Pull dialog
  2. マルチリポジトリプロジェクトがある場合は、追加のドロップダウンが表示され、リポジトリを選択できます。

  3. プロジェクトに複数のリモートが定義されている場合は、リストからリモートを選択します(デフォルトでは origin です)。

  4. 現在チェックアウトされているブランチに変更をプルするブランチを選択します。デフォルトでは、現在のローカルブランチによって追跡されるリモートブランチが選択されています。別のブランチを指定すると、IntelliJ IDEA は選択内容を記憶し、将来、デフォルトでこのブランチを表示します。

  5. オプションを使用してプルする必要がある場合は、オプションを変更をクリックして、以下から選択します。

    • --rebase : リモートブランチから変更をフェッチした後、IntelliJ IDEA は、プッシュされていないローカルの変更をフェッチされた変更にリベースします。

    • --ff-only : マージは、早送りが可能な場合にのみ解決されます。

    • --no-ff : マージが早送りとして解決できたとしても、マージコミットはすべての場合に作成されます。

    • --squash : すべてのプルされた変更を含む単一のコミットは、現在のブランチ上に作成されます。

    • --no-commit : マージは実行されますが、マージコミットは作成されないため、コミットする前にマージの結果をインスペクションできます。

    pull オプションの詳細については、「https://git-scm.com/docs/git-pull(英語)」を参照してください。

  6. プルをクリックします。

プロジェクトを更新する

複数のプロジェクトルートがある場合、またはリモートリポジトリと同期するたびにすべてのブランチから変更をフェッチする場合は、プロジェクトを更新する方が便利なオプションです。

更新操作を実行すると、IntelliJ IDEA はフェッチすべてのプロジェクトのルートとブランチから変更をし、マージプルに相当)ローカルの作業コピーにリモートブランチを追跡しました。

  1. メインメニューで、VCS | プロジェクトの更新に移動するか、Ctrl+T を押します。「プロジェクトの更新」ダイアログが開きます。

  2. アップデートタイプを選択します(この戦略は、Git バージョン管理下にあるすべてのルートに適用されます)。

    • 相手からの変更を現在のブランチにマージします : 更新中にマージ(英語)を実行するには、このオプションを選択します。これは、git fetch を実行してから git merge、または git pull --no-rebase を実行するのと同じです。

    • 現在のブランチを相手からの変更の上にリベースします : 更新中にリベース(英語)を実行するには、このオプションを選択します。これは、git fetch を実行してから git rebase、または git pull --rebase を実行するのと同じです(すべてのローカルコミットは、更新されたアップストリームヘッドの上に配置されます)。

今後プロジェクトの更新ダイアログを表示しないことを選択し、後でデフォルトの更新戦略を変更する場合は、設定 Ctrl+Alt+Sバージョン管理 | 確認ページに移動し、これらのコマンドが起動されたときにオプションダイアログを表示する:更新を選択して、次回更新を実行するときに更新戦略を変更します。

更新操作が完了すると、更新情報タブが Git ツールウィンドウ Alt+9 に追加されます。リモートとの最後の同期以降に行われたすべてのコミットがリストされ、ログタブと同じ方法で変更を確認できます。

関連ページ:

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

Git リポジトリに新しいファイルを追加するか、すでに Git バージョン管理下にあるファイルを変更し、現在の状態に満足したら、作業の結果を共有できます。これには、ローカルにコミットしてリポジトリのスナップショットをプロジェクト履歴に記録し、次にリモートリポジトリにプッシュして他のユーザーが使用できるようにすることが含まれます。Git ユーザー名を設定する Git は、コミットを ID に関連付けるために、ユーザー名を知っている必要があります。ユーザー名を設定していない場合、IntelliJ ID...

変更を適用するには、マージ、リベース、チェリーピックを行います。| IntelliJ IDEA ドキュメント

Git では、あるブランチから別のブランチへの変更を統合するいくつかの方法があります。ブランチのマージ、ブランチのリベース、チェリーピックの個別コミット、コミットから個別の変更を適用する、特定のファイルをブランチに適用する、ブランチのマージ:特定のタスクを実行するために機能ブランチを作成し、機能を完了してテストした後、作業結果をメインコードベースに統合するとします。これを行う最も一般的な方法は、ブランチをマスターにマージすることです。機能ブランチで作業をしている間、チームメイトが master...

更新情報タブ

このタブは、ローカル情報がサーバー(VCS | プロジェクトの更新)と同期されている場合に使用できます。コミット数エリアには、最後にリモートと同期してから実行されたすべてのコミットのリストが表示されます。ツールバー:フィルターなしこのフィールドを使用して、コミットのリストを検索します。完全なコミット名またはメッセージ、あるいはそれらのフラグメント、リビジョン番号、正規表現を入力できます。検索を完了するには、を押すか、フォーカスを検索フィールドから離します。なしクリックすると前の検索パターンが

ファイルを Git に追加し、変更を追跡する

Git にファイル追加コミットツールウィンドウを開きます。を押すか、コンテキストメニューから VCS に追加を選択して、バージョン管理外ファイル変更リスト内のファイルをバージョン管理下に置きます。変更リスト全体を追加することも、個別のファイルを選択することもできます。プロジェクトで Git 統合を有効にしている場合、IntelliJ IDEA は、新しく作成された各ファイルをバージョン管理下に追加することを提案します。この動作は、の設定ダイアログで変更できます。特定のファイルを常にバージョン管...