リモート Git リポジトリと同期する (フェッチ、プル、更新)
変更をアップストリームにプッシュして作業結果を共有する前に、リモートリポジトリと同期して、プロジェクトのローカルコピーが最新であることを確認する必要があります。 これを行うには、次のいずれかの方法があります: 変更を取得、 変更を取り込む 、または プロジェクトを更新する。
VCS ウィジェットには、まだフェッチされていない受信コミットの数(ブランチ名の横にある青い矢印アイコン )と送信コミットの数(ブランチ名の横にある緑の矢印アイコン
)が表示されます。

変更のフェッチ
アップストリームから変更を フェッチすると、リモートリポジトリと最後に同期してから行われたコミットからのすべての新しいデータがローカルコピーにダウンロードされます。 この新しいデータはローカルファイルに統合されず、変更はコードに適用されません。
フェッチした変更はリモート ブランチとして保管されるため、 マージする前に内容を確認できます。 fetch はローカル開発環境に影響しないため、リモートリポジトリ上のすべての変更を取得する安全な方法です。
アップストリームから変更をフェッチする方法は 3 つあります。
メインメニューで Git | フェッチ を選択します。
VCS ウィジェットを開き、右上隅の
をクリックします。

プロジェクト内のすべてのリモートの自動フェッチを有効化するには、 で リモートでの変更を自動でフェッチする オプションを選択します。
このバックグラウンドタスクはデフォルトで 20 分ごとに実行されます(
git.update.incoming.info.timeレジストリキーで設定可能)。
このビデオを見て(英語)を使用すると、IDE でフェッチ操作がどのように実行されるかをよりよく理解できます。
ブランチを更新する
特定のブランチをそのリモート追跡ブランチと同期する必要がある場合は、 更新を使用します。 これは、選択したブランチを フェッチして 、変更を適用するための便利なショートカットです。
VCS ウィジェット、または ブランチ ツールウィンドウの バージョン管理 ペインで、ブランチを選択し、コンテキストメニューから 更新 を選びます。
IntelliJ IDEA はリモートブランチから変更を プル(英語)し、 で選択された更新方法に応じて、ローカルブランチに リベースまたは マージします。
変更のプル
リモートで追跡されたブランチではなく、別のブランチから現在のブランチに変更を加える必要がある場合は、 pull を使用します。 プルすると、新しいデータをダウンロードするだけでなく、プロジェクトのローカル作業コピーに統合することもできます。
メインメニューで へ移動します。 変更のプル ダイアログが開きます:

マルチリポジトリプロジェクトがある場合は、追加のドロップダウンが表示され、リポジトリを選択できます。
プロジェクトに複数のリモートが定義されている場合は、リストからリモートを選択します(デフォルトでは
originです)。現在チェックアウトされているブランチに変更をプルするブランチを選択します。 デフォルトでは、現在のローカルブランチによって追跡されるリモートブランチが選択されています。 別のブランチを指定すると、IntelliJ IDEA は選択内容を記憶し、将来、デフォルトでこのブランチを表示します。
オプションを使用してプルする必要がある場合は、 オプションを変更 をクリックして、以下から選択します。
--rebase: リモートブランチから変更を フェッチした後、IntelliJ IDEA は、プッシュされていないローカルの変更をフェッチされた変更に リベースします。--ff-only: マージは、早送りが可能な場合にのみ解決されます。--no-ff: マージが早送りとして解決できたとしても、マージコミットはすべての場合に作成されます。--squash: すべてのプルされた変更を含む単一のコミットは、現在のブランチ上に作成されます。--no-commit: マージは実行されますが、マージコミットは作成されないため、コミットする前にマージの結果をインスペクションできます。--no-verify: 通常はデフォルトで実行されるマージ前フックとコミットメッセージフックをバイパスしながらマージを実行します。
pullオプションの詳細については、 https://git-scm.com/docs/git-pull を参照してください。プル をクリックします。
プロジェクトを更新する
複数のプロジェクトルートがある場合、またはリモートリポジトリと同期するたびにすべてのブランチから変更をフェッチする場合は、 プロジェクトを更新する方が便利なオプションです。
、 更新操作を実行すると、IntelliJ IDEA は フェッチすべてのプロジェクトのルートとブランチから変更をし、 マージ (プルに相当)ローカルの作業コピーにリモートブランチを追跡しました。
メインメニューで、 に移動するか、 Ctrl+T を押します。 「プロジェクトの更新 」ダイアログが開きます。
アップデートタイプを選択します(この戦略は、Git バージョン管理下にあるすべてのルートに適用されます)。
相手からの変更を現在のブランチにマージする: 更新中に マージ(英語)を実行するには、このオプションを選択します。 これは、
git fetchを実行してからgit mergeまたはgit pull --no-rebaseを実行するのと同じです。現在のブランチを相手からの変更の上にリベースする: 更新中に リベース(英語)を実行するには、このオプションを選択します。 これは、
git fetchを実行してからgit rebaseまたはgit pull --rebaseを実行するのと同じです(すべてのローカルコミットは、更新されたアップストリームヘッドの上に配置されます)。リモートブランチにリセット :このオプションを選択すると、すべてのローカルコミットが削除され、ブランチがリモートバージョンと正確に一致します。
今後 プロジェクトの更新 ダイアログを表示しないことを選択し、後でデフォルトの更新戦略を変更する場合は、 バージョン管理 | 確認 設定ページ Ctrl+Alt+S に移動し、 前にオプションを表示 の 更新 を選択し、次回更新を実行するときに更新戦略を変更します。
更新操作が完了すると、 更新情報タブが Git ツールウィンドウ Alt+9 に追加されます。 リモートとの最後の同期以降に行われたすべてのコミットがリストされ、 ログタブ と同じ方法で変更を確認できます。 デフォルトでは、タブは自動的に開きます。 この動作を変更するには、 で プロジェクトの更新後に '更新情報' タブを自動的に開く チェックボックスをオフにしてください。