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

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

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

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