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

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

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

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