PyCharm 2024.3 ヘルプ

Git リポジトリの変更を調査する

PyCharm では、プロジェクト内のすべての変更を追跡できます。これにより、変更の作成者を特定し、ファイルバージョンまたはコミットの違いを確認し、必要に応じて変更を安全にロールバックして元に戻すことができます。

プロジェクト履歴を確認する

指定したフィルターに一致するプロジェクトソースに加えられたすべての変更を確認できます。プロジェクト履歴を表示するには、Git ツールウィンドウ Alt+9ログタブを開きます。すべてのブランチおよびリモートリポジトリにコミットされたすべての変更が表示されます。

log view

マルチリポジトリプロジェクトでは、左側の色付きのストライプは、選択したコミットがどのルートに属しているかを示します (各ルートは独自の色でマークされています)。色付きのストライプの上にマウスを移動すると、ルートパスを示すヒントが表示されます。

Root path
  • 完全なコミット名やメッセージ、そのフラグメント、リビジョン番号、正規表現を入力して、コミットのリストを検索します。

  • ブランチまたはお気に入りのブランチ、ユーザー、日付、フォルダー (またはマルチルートプロジェクトの場合はルートとフォルダー) でコミットをフィルターします。

  • ツールバーのハッシュ / ブランチ / タグへジャンプ go to アイコンをクリックするか、Ctrl+F を押して、移動するコミットハッシュ、タグ、またはブランチの名前を指定します(そのブランチの最新のコミットに移動します)。

  • 長いブランチで次のコミットに移動するには、矢印をクリックします。

    Jump to next commit
  • Left および Right キーを押して、親 / 子コミットに移動します。これは、Git ツールウィンドウ Alt+9ログタブに異なるリポジトリと複数のブランチがすべて混在している場合に特に便利です。

Git ツールウィンドウ Alt+9ログタブの詳細については、「ログタブ」を参照してください。

特定のリビジョンでプロジェクトのスナップショットを確認する

PyCharm では、選択したリビジョンのプロジェクトの状態を確認できます。

  1. Git ツールウィンドウ Alt+9 を開き、ログタブに切り替えます。

  2. コミットを選択し、コンテキストメニューからリビジョンでリポジトリを表示を選択します。

選択したリビジョンのプロジェクトのスナップショットを含むリポジトリツールウィンドウが開きます。

2 つのコミットの違いを確認する

PyCharm を使用すると、2 つのコミット間で変更されたファイルを確認できます。その間、各コミットの変更を参照する必要はありません。

  • Git ツールウィンドウ Alt+9ログタブで任意の 2 つのコミットを選択し、コンテキストメニューからバージョンの比較を選択します。

    選択したコミット間で変更されたファイルのリストを含む変更ツールウィンドウが開きます。 the Show diff icon 差分の表示をクリックするか、Ctrl+D を押すと、任意のファイルの差分を表示できます。

ファイル履歴を確認する

特定のファイルに加えられたすべての変更を確認し、各リビジョンで正確に変更されたものを見つけることができます。

  1. 任意のビュー (プロジェクトツールウィンドウ、エディター、変更ビューなど) で必要なファイルを選択します。

  2. メインメニューから Git | 選択されたファイル | 履歴の表示を選択するか、選択のコンテキストメニューから Git | 履歴の表示を選択します。Git ツールウィンドウにヒストリータブが追加され、選択したファイルの履歴が表示され、そのリビジョンを確認して比較できるようになります。

  3. 特定のリビジョンでどの変更が導入されたかを特定するには、リストで選択します。パネルの右側に、差分が即座に表示されます。

  4. 専用の Diff ビューアーでファイル全体の diff を表示するには、リストでファイルを選択して Ctrl+D を押すか、ツールバーの the Show diff icon 差分の表示をクリックします。差分ビューアーが開き、このリビジョンで何が変更されたかが表示されます。

ツールバーボタンを使用すると、選択したリビジョンをローカルバージョンと比較したり、選択したリビジョンのクラスを比較したり、選択したリビジョンをチェックアウトしたり、選択したリビジョンにアノテーションを付けたりすることができます。

項目

ツールチップとショートカット

説明

ブランチ

ブランチフィルター

ブランチをクリックし、ブランチを選択して、このブランチ内のファイルに加えられた変更を確認します。

the Refresh button

リフレッシュ

このボタンをクリックして現在の情報をリフレッシュします。

the Show diff icon

差分の表示

Ctrl+D

このボタンをクリックして、ファイルの選択されたリビジョンを差分ビューアーの前のリビジョンと比較します。

the Show All Affected Files button

影響を受けたファイルをすべて表示

Alt+Shift+A

このボタンをクリックすると、改訂の影響を受けるパスダイアログが開き、選択したリビジョンで変更されたすべてのファイルが表示されます。

the Eye icon

表示オプション

ヒストリービューに表示する情報の量をクリックして選択します。PyCharm に変更が作成された時刻の代わりにコミットタイムスタンプを表示する場合は、コミットのタイムスタンプを表示オプションを選択することもできます。

また、表示したい情報の種類を選択します。

  • 詳細の表示は、選択したリビジョンのコミットメッセージを表示します。

  • 差分プレビューの表示を使用して、選択したリビジョンの差分プレビューを開きます。

the Open on GitHub button

GitHub で開く

このボタンをクリックして、GitHub(英語) で選択されたコミットに対応するページを開きます。

GitLab で開く

このボタンをクリックして、GitLab(英語) で選択されたコミットに対応するページを開きます。

the Resume button

Git ログインデックスを有効にする

このボタンをクリックすると、IDE 全体の変更履歴の操作性が向上します。プロジェクトリポジトリのインデックス作成により、次のことが可能になります。

  • 高速なログフィルタリングと正確な履歴の計算。

  • ファイル履歴内のすべてのブランチを表示します。

  • どこでも検索で履歴全体を検索します。

このオプションを無効にするには、設定 | バージョン管理 | 確認 | ログに移動します。

Renaming

列名の変更

この列をクリックして展開し、ファイルの名前変更の履歴を確認します。列の上にマウスを置くと、ファイルのパスの変更が表示されます。

選択内容の履歴を表示する

  1. エディターで、ソースコードの必要な部分を選択するか、対応する行にキャレットを置きます。

  2. メインメニューから Git | 現在のファイル | 選択範囲の履歴を表示を選択するか、選択のコンテキストメニューから Git | 選択範囲の履歴を表示を選択します。

選択したフラグメントの履歴が別のウィンドウで開きます。何も選択されていない場合は、現在の行の履歴が表示されます。

ディレクトリの履歴を確認する

プロジェクト全体または特定のファイルの履歴を確認することに加えて、特定のフォルダーで行われた変更を確認できます。

  1. プロジェクトツールウィンドウで 1 つまたは複数のディレクトリを選択し、コンテキストメニューから Git | 履歴の表示を選択します。

  2. 新しいタブが Git ツールウィンドウ Alt+9 に追加され、選択したフォルダーによってフィルターされたコミットが表示されます。

ローカルファイルバージョンとコミットされたファイルバージョンの違いを確認する

コミットされたファイルリビジョンがローカルバージョンとどのように異なるかを確認することができます:

  1. Git ツールウィンドウ Alt+9 を開き、ログタブに切り替えます。

  2. 関心のあるコミットを選択し、右側のペインでファイルを選択します。

  3. ツールバーの the Show diff icon ボタンをクリックします。

変更がどのようにマージされたかを確認する

PyCharm を使用すると、あるブランチから別のブランチに変更がマージされた方法、およびマージ中に競合(存在する場合)が正確に解決された方法を確認できます。

  • Git ツールウィンドウ Alt+9ログタブで、目的のマージコミットを選択します。

    • マージ中に競合が検出および解決されなかった場合、PyCharm は変更されたファイルペインに対応するメッセージを表示し、両方の親から発生した変更の確認を提案します。

      Changes from parents

      いずれかのノードから必要なファイルを選択し、ツールバーの the Show diff icon 差分の表示をクリックするか、Ctrl+D を押します。差分ビューアーには 2 つのパネルの差分が表示され、現在のバージョンと選択した親を比較できます。

    • マージ中に競合が発生した場合、変更されたファイルペインには競合によってマージされたファイルの一覧が表示されます。

      必要なファイルを選択し、ツールバーの the Show diff icon 差分の表示をクリックするか、Ctrl+D を押します。差分ビューアーには 3 つのパネルの差分が表示され、現在のバージョンをそれぞれの親バージョンと比較し、競合がどのように解決されたかを確認できます。

コード作成者の特定 (Git Blame でアノテーションを付ける)

VCS アノテーションgit-blame(英語) に対応)を使用すると、誰がファイルにどの変更を導入したかを把握できます。アノテーション付きのビューには、コードの各行の詳細情報が表示されます。

Annotations

現在のリビジョンで変更された行のアノテーションは、太字とアスタリスクでマークされています。

デフォルトでは、異なるコミットは異なる色でハイライトされます ( アノテーションに表示される情報量を設定するを参照)。

アノテーションビューから、次の場所に移動できます。

  • Git ツールウィンドウ Alt+9ログタブ内の対応するコミット: アノテーションをクリックするか、アノテーションの上にマウスを移動して、詳細情報が表示されたポップアップ内のコミットハッシュをクリックします。

    Popup with detailed information about commit
  • 行の違い: アノテーションの上にマウスを置きます。IDE はその行と、対応するコミットからの変更をハイライトします。

    Difference in lines
  • https://github.com(英語) の対応するコミット: GitHub で開くコンテキストメニューオプションを使用します。

  • 問題のナビゲーションが有効になっている場合のバグ追跡システムの関連する問題: アノテーションの上にマウスを置き、コミットメッセージに含まれている場合は問題のリンクをクリックします。

アノテーションを有効にする

  • エディターまたは差分ビューアーでガターを右クリックし、コンテキストメニューから Git Blame でアノテーションを付けるを選択します。

    アノテーションコマンドにカスタムショートカットを割り当てることができます。設定 Ctrl+Alt+Sキーマップページに移動し、バージョン管理システム | Git | アノテーションを探します。

    アノテーションを閉じるには、エディターまたは差分ビューアーでガターを右クリックし、コンテキストメニューからアノテーションを閉じるを選択します。

アノテーションに表示される情報量を設定する

アノテーションビューに表示する情報量を選択できます。

  • アノテーションガターを右クリックして表示を選択し、この変更の起点となった改訂、日付、さまざまな形式の作者の名前、コミット番号など、表示したい情報の種類を選択します。

    でハイライトを設定することもできます。

アノテーションオプションを設定する

  • アノテーションガターを右クリックして、コンテキストメニューからオプションを選択します。

    • 空白を無視 : 空白文字は無視されます(git blame -w)。これは、アノテーションが以前の意味のあるコミットを指すことを意味します。

    • ファイル内の移動を検出 : コミットが同じファイル内で行を移動またはコピーするとき、そのような変更は無視されます(git blame -M)。これは、アノテーションが以前の意味のあるコミットを指すことを意味します。

    • ファイル間の移動を検出 : コミットが同じコミットで変更された他のファイルから行を移動またはコピーするとき、そのような変更は無視されます(git blame -C)。これは、アノテーションが以前の意味のあるコミットを指すことを意味します。

    • コミットのタイムスタンプを表示 : 変更が作成された時刻ではなく、アノテーションビューで PyCharm にコミットタイムスタンプを表示する場合は、このオプションを選択します。

日付形式をカスタマイズする

  1. Ctrl+Alt+S を押して設定を開き、外観 & 振る舞い | システム設定 | 日付形式を選択します。

  2. VCS アノテーションの横にある日時パターンフィールドをクリックし、VCS アノテーションに使用する日付形式を指定します。パターンリファレンスを参照してください(英語)

変更の作成者をエディターに表示する

インレイヒントで要素(メソッドまたはクラス)への最後の変更の作成者を表示するようにエディターを構成できます。オンにするには:

  1. Ctrl+Alt+S を押して設定を開き、エディター | インレイヒント | コードビジョンを選択します。

  2. コード作成者オプションを選択してください。

  3. 作成者名を表示する位置を選択します。

    • ラインの上に (デフォルト)

      Code vision inlay hints Top
    • 右側に

      Code vision inlay hints Right

このオプションを有効にすると、エディターで作成者名のヒントをクリックして、アノテーション付きビューを開くことができます。

変更の作成者を非表示にする

エディターでコード作成者の名前を非表示にするには、次のいずれかを実行します。

  • Ctrl+Alt+S 設定のエディター | インレイヒント | コードビジョンページを開き、コード作成者オプションを無効にします。

  • エディターで作成者名のヒントを右クリックし、コードビジョンを非表示: コード作成者のインレイヒントを選択します。

    Hide code author names

以前のリビジョンにアノテーションを付ける

PyCharm では、現在のファイルリビジョンだけでなく、以前のリビジョンにアノテーションを付けることができます。アノテーションガターのコンテキストメニューから、次のオプションを選択できます。

  • リビジョンにアノテーションを追加 : このオプションは、特定の変更がコミットされた後にファイルがどのように見えるかを確認したい場合に役立ちます。これを行うには、この変更を右クリックして、コンテキストメニューからリビジョンにアノテーションを追加を選択します。

  • 以前のリビジョンにアノテーションを追加 : このオプションは、特定の行の最後の変更が無意味である場合、たとえば変更されたのがコードのフォーマットのみである場合に便利です。この場合、ファイルの以前のリビジョンがどのようになっていたかを確認できます。これを行うには、変更を右クリックし、コンテキストメニューから以前のリビジョンにアノテーションを追加を選択します。

  • リビジョンを非表示 : このオプションは、無関係な変更や管理上の変更が表示されるのを避けるのに役立ちます。これらは通常、低レベルの移行またはフォーマット操作によって導入されます。これらの変更がルート全体に影響を与えると、アノテーションダイアログ内が乱雑になるため、ビューおよび「アノテーション」列から変更を除外することが望ましい場合があります。リビジョンを非表示アクションを使用すると、その場でアノテーション結果からリビジョンを除外し、エディターとガターの両方に結果を表示できます。除外されたリビジョンは、反対のアクション非表示のリビジョンを復元するを使用して復元できます。非表示のリビジョンに関する情報は、エディターの上部にある通知パネルに表示されます。通知パネルの対応するリンクをクリックして、非表示のリビジョンを復元することもできます。

また、ヒストリービューから特定のファイルにアノテーションを付けることもできます。ヒストリータブで、レビューするファイルのバージョンを選択し、対応する行を右クリックし、コンテキストメニューからアノテーションを選択します。

アノテーションを使用する利点の詳細については、この動画を参照してください。

関連ページ:

Git リポジトリの変更を元に戻す

コミットされていない変更を元に戻すコミットする前に、ローカルで行った変更をいつでも元に戻すことができます。コミットツールウィンドウで、元に戻すファイルを 1 つ以上選択し、コンテキストメニューからロールバックを選択するか、を押します。最後のコミット以降に選択したファイルに加えられたすべての変更は破棄され、アクティブな変更リストから消えます。ファイルのステージングを解除するデフォルトでは、PyCharm は、変更されたファイルが自動的にステージングされる変更リストの概念を使用します。ファイルが...

タグを使用して特定の Git コミットをマークする

Git を使用すると、コミットにタグを付けて、プロジェクト履歴の特定のポイントをマークし、将来参照できるようにすることができます。例: リリーススナップショットをキャプチャーするためにブランチを作成する代わりに、リリースバージョンに対応するコミットにタグを付けることができます。PyCharm では、Git ブランチポップアップでタグの操作を実行できます。これを呼び出すには、メインウィンドウのヘッダーで、現在チェックアウトされているブランチの名前の Git ウィジェットをクリックします。Git ツー...

ログタブ

このタブは、バージョン管理に Git または Mercurial を使用している場合にのみ使用できます。このタブには、すべてのローカルおよびリモートブランチと、すべてのブランチまたは特定のブランチまたはリポジトリにコミットされたすべての変更が表示されます。タブには次のペインが含まれます。ブランチペインは左側にあり、すべてのローカルおよびリモートブランチを表示します。このペインから、ブランチを切り替えたり、新しいブランチを作成したり、不要なものを削除したり、ブランチでログをフィルター処理したりできます。コ...

マージ、リベース、チェリーピックで変更を適用

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

Git の競合を解決する

チームで作業しているときに、現在作業中のファイルに誰かが変更をプッシュするという状況に遭遇する可能性があります。これらの変更が重複しない場合(つまり、異なるコード行に変更が加えられた場合)、競合するファイルは自動的にマージされます。しかし、同じ行が影響を受けた場合、Git は無作為に一方を他方を選ぶことはできず、衝突を解決するように求めます。Git では、プル、マージ、リベース、チェリーピック、変更のスタッシュ解除、またはパッチの適用のいずれかの操作を実行しようとすると、競合が発生する可能性があ...

Git と課題トラッカーの統合

PyCharm を使用すると、コミットメッセージをバグトラッカーまたは課題データベースに接続し、VCS ログ内のコミットからこれらのコミットに関連する課題に移動できます。コミットメッセージから課題へのナビゲーションを有効にするを押して設定を開き、を選択します。このダイアログを使用して、課題ナビゲーションパターンのリストを作成します。課題ナビゲーションパターンは、コミットメッセージ内の課題 ID パターンを、参照される課題の URL アドレスにマップします。これにより、コミットされた変更からそれら...