リモート 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 に更新情報タブが追加されます。このタブには、リモートとの最後の同期以降に行われたすべてのコミットが表示され、ログタブと同様の方法で変更内容を確認できます。デフォルトでは、このタブは自動的に開きます。この動作を変更するには、 でプロジェクトの更新後に「更新情報」タブを自動的に開くチェックボックスをオフにします。
関連ページ:
Git リポジトリに変更をコミットしてプッシュする
Git リポジトリに新しいファイルを追加するか、すでに Git バージョン管理下にあるファイルを変更し、現在の状態に満足したら、作業の結果を共有できます。これには、ローカルにコミットしてリポジトリのスナップショットをプロジェクト履歴に記録し、次にリモートリポジトリにプッシュして他のユーザーが使用できるようにすることが含まれます。Git ユーザー名を設定する Git は、コミットを ID に関連付けるために、ユーザー名を知っている必要があります。ユーザー名を設定していない場合、PyCharm は、最...
マージ、リベース、チェリーピックで変更を適用
Git では、あるブランチから別のブランチへの変更を統合するいくつかの方法があります。ブランチのマージ、ブランチのリベース、チェリーピックの個別コミット、コミットから個別の変更を適用する、特定のファイルをブランチに適用する、ブランチのマージ:特定のタスクを実行するために機能ブランチを作成し、機能を完了してテストした後、作業の結果 (、) をメインコードベースに統合するとします。#mermaid-wrs{font-family:
更新情報タブ
このタブは、ローカル情報がサーバー(<specific_VCS> | プロジェクトの更新)と同期されている場合に使用できます。コミット数エリアには、最後にリモートと同期してから実行されたすべてのコミットのリストが表示されます。ツールバー:フィルターなしこのフィールドを使用して、コミットのリストを検索します。完全なコミット名またはメッセージ、あるいはそれらのフラグメント、リビジョン番号、正規表現を入力できます。検索を完了するには、を押すか、フォーカスを検索フィールドから離します。な
ログタブ
このタブは、バージョン管理に Git または Mercurial を使用している場合にのみ使用できます。このタブには、すべてのローカルおよびリモートブランチと、すべてのブランチまたは特定のブランチまたはリポジトリにコミットされたすべての変更が表示されます。タブには次のペインが含まれます。ブランチペインは左側にあり、すべてのローカルおよびリモートブランチを表示します。このペインから、ブランチを切り替えたり、新しいブランチを作成したり、不要なものを削除したり、ブランチでログをフィルター処理したりできます。コ...
ファイルを Git に追加し、変更を追跡する
Git にファイル追加コミットツールウィンドウを開きます。を押すか、コンテキストメニューから VCS に追加を選択して、バージョン管理外ファイル変更リスト内のファイルをバージョン管理下に置きます。変更リスト全体を追加することも、個別のファイルを選択することもできます。プロジェクトで Git 統合を有効にしている場合、PyCharm は、新しく作成された各ファイルをバージョン管理下に追加することを提案します。この動作は、の設定ダイアログで変更できます。特定のファイルを常にバージョン管理しないように...