Git リポジトリの変更を調査する
IntelliJ IDEA では、プロジェクト内のすべての変更を追跡できます。これにより、変更の作成者を特定し、ファイルバージョンまたはコミットの違いを確認し、必要に応じて変更を安全にロールバックして元に戻すことができます。
プロジェクト履歴を確認する
指定したフィルターに一致するプロジェクトソースに加えられたすべての変更を確認できます。プロジェクト履歴を表示するには、Git ツールウィンドウ Alt+9 のログタブを開きます。すべてのブランチおよびリモートリポジトリにコミットされたすべての変更が表示されます。
マルチリポジトリプロジェクトでは、左側の色付きのストライプは、選択したコミットがどのルートに属しているかを示します (各ルートは独自の色でマークされています)。色付きのストライプの上にマウスを移動すると、ルートパスを示すヒントが表示されます。
プロジェクト履歴を移動して検索する
完全なコミット名やメッセージ、そのフラグメント、リビジョン番号、正規表現を入力して、コミットのリストを検索します。
ブランチまたはお気に入りのブランチ、ユーザー、日付、フォルダー (またはマルチルートプロジェクトの場合はルートとフォルダー) でコミットをフィルターします。
ツールバーのハッシュ / ブランチ / タグへジャンプ アイコンをクリックするか、Ctrl+F を押して、移動するコミットハッシュ、タグ、またはブランチの名前を指定します(そのブランチの最新のコミットに移動します)。
長いブランチで次のコミットに移動するには、矢印をクリックします。
Left および Right キーを押して、親 / 子コミットに移動します。これは、Git ツールウィンドウ Alt+9 のログタブに異なるリポジトリと複数のブランチがすべて混在している場合に特に便利です。
Git ツールウィンドウ Alt+9 のログタブの詳細については、「ログタブ」を参照してください。
特定のリビジョンでプロジェクトのスナップショットを確認する
IntelliJ IDEA では、選択したリビジョンのプロジェクトの状態を確認できます。
Git ツールウィンドウ Alt+9 を開き、ログタブに切り替えます。
コミットを選択し、コンテキストメニューからリビジョンでリポジトリを表示を選択します。
選択したリビジョンのプロジェクトのスナップショットを含むリポジトリツールウィンドウが開きます。
2 つのコミットの違いを確認する
IntelliJ IDEA を使用すると、2 つのコミット間で変更されたファイルを確認できます。その間、各コミットの変更を参照する必要はありません。
Git ツールウィンドウ Alt+9 のログタブで任意の 2 つのコミットを選択し、コンテキストメニューからバージョンの比較を選択します。
選択したコミット間で変更されたファイルのリストを含む変更ツールウィンドウが開きます。 差分の表示をクリックするか、Ctrl+D を押すと、任意のファイルの差分を表示できます。
ファイル履歴を確認する
特定のファイルに加えられたすべての変更を確認し、各リビジョンで正確に変更されたものを見つけることができます。
任意のビュー (プロジェクトツールウィンドウ、エディター、変更ビューなど) で必要なファイルを選択します。
メインメニューから Git | 選択されたファイル | 履歴の表示を選択するか、選択のコンテキストメニューから Git | 履歴の表示を選択します。Git ツールウィンドウにヒストリータブが追加され、選択したファイルの履歴が表示され、そのリビジョンを確認して比較できるようになります。
特定のリビジョンでどの変更が導入されたかを特定するには、リストで選択します。パネルの右側に、差分が即座に表示されます。
専用の Diff ビューアーでファイル全体の diff を表示するには、リストでファイルを選択して Ctrl+D を押すか、ツールバーの 差分の表示をクリックします。差分ビューアーが開き、このリビジョンで何が変更されたかが表示されます。
ツールバーボタンを使用すると、選択したリビジョンをローカルバージョンと比較したり、選択したリビジョンのクラスを比較したり、選択したリビジョンをチェックアウトしたり、選択したリビジョンにアノテーションを付けたりすることができます。
項目 | ツールチップとショートカット | 説明 |
---|---|---|
ブランチ | ブランチフィルター | ブランチをクリックし、ブランチを選択して、このブランチ内のファイルに加えられた変更を確認します。 |
| リフレッシュ | このボタンをクリックして現在の情報をリフレッシュします。 |
| 差分の表示 Ctrl+D | このボタンをクリックして、ファイルの選択されたリビジョンを差分ビューアーの前のリビジョンと比較します。 |
| 影響を受けたファイルをすべて表示 Alt+Shift+A | このボタンをクリックすると、改訂の影響を受けるパスダイアログが開き、選択したリビジョンで変更されたすべてのファイルが表示されます。 |
| 表示オプション | ヒストリービューに表示する情報の量をクリックして選択します。IntelliJ IDEA に変更が作成された時刻の代わりにコミットタイムスタンプを表示する場合は、コミットのタイムスタンプを表示オプションを選択することもできます。 また、表示したい情報の種類を選択します。
|
| GitHub で開く | このボタンをクリックして、GitHub(英語) で選択されたコミットに対応するページを開きます。 |
| GitLab で開く | このボタンをクリックして、GitLab(英語) で選択されたコミットに対応するページを開きます。 |
| Git ログインデックスを有効にする | このボタンをクリックすると、IDE 全体の変更履歴の操作性が向上します。プロジェクトリポジトリのインデックス作成により、次のことが可能になります。
このオプションを無効にするには、 に移動します。 |
| 列名の変更 | この列をクリックして展開し、ファイルの名前変更の履歴を確認します。列の上にマウスを置くと、ファイルのパスの変更が表示されます。 |
選択内容の履歴を表示する
エディターで、ソースコードの必要な部分を選択するか、対応する行にキャレットを置きます。
メインメニューから Git | 現在のファイル | 選択範囲の履歴を表示を選択するか、選択のコンテキストメニューから Git | 選択範囲の履歴を表示を選択します。
選択したフラグメントの履歴が別のウィンドウで開きます。何も選択されていない場合は、現在の行の履歴が表示されます。
ディレクトリの履歴を確認する
プロジェクト全体または特定のファイルの履歴を確認することに加えて、特定のフォルダーで行われた変更を確認できます。
プロジェクトツールウィンドウで 1 つまたは複数のディレクトリを選択し、コンテキストメニューから
を選択します。新しいタブが Git ツールウィンドウ Alt+9 に追加され、選択したフォルダーによってフィルターされたコミットが表示されます。
ローカルファイルバージョンとコミットされたファイルバージョンの違いを確認する
コミットされたファイルリビジョンがローカルバージョンとどのように異なるかを確認することができます:
Git ツールウィンドウ Alt+9 を開き、ログタブに切り替えます。
関心のあるコミットを選択し、右側のペインでファイルを選択します。
ツールバーの ボタンをクリックします。
変更がどのようにマージされたかを確認する
IntelliJ IDEA を使用すると、あるブランチから別のブランチに変更がマージされた方法、およびマージ中に競合(存在する場合)が正確に解決された方法を確認できます。
Git ツールウィンドウ Alt+9 のログタブで、目的のマージコミットを選択します。
マージ中に競合が検出および解決されなかった場合、IntelliJ IDEA は変更されたファイルペインに対応するメッセージを表示し、両方の親から発生した変更の確認を提案します。
いずれかのノードから必要なファイルを選択し、ツールバーの 差分の表示をクリックするか、Ctrl+D を押します。差分ビューアーには 2 つのパネルの差分が表示され、現在のバージョンと選択した親を比較できます。
マージ中に競合が発生した場合、変更されたファイルペインには競合によってマージされたファイルの一覧が表示されます。
必要なファイルを選択し、ツールバーの 差分の表示をクリックするか、Ctrl+D を押します。差分ビューアーには 3 つのパネルの差分が表示され、現在のバージョンをそれぞれの親バージョンと比較し、競合がどのように解決されたかを確認できます。
コード作成者の特定 (Git Blame でアノテーションを付ける)
VCS アノテーション(git-blame(英語) に対応)を使用すると、誰がファイルにどの変更を導入したかを把握できます。アノテーション付きのビューには、コードの各行の詳細情報が表示されます。
現在のリビジョンで変更された行のアノテーションは、太字とアスタリスクでマークされています。
デフォルトでは、異なるコミットは異なる色でハイライトされます ( アノテーションに表示される情報量を設定するを参照)。
アノテーションビューから、次の場所に移動できます。
Git ツールウィンドウ Alt+9 のログタブ内の対応するコミット: アノテーションをクリックするか、アノテーションの上にマウスを移動して、詳細情報が表示されたポップアップ内のコミットハッシュをクリックします。
行の違い: アノテーションの上にマウスを置きます。IDE はその行と、対応するコミットからの変更をハイライトします。
https://github.com(英語) の対応するコミット: GitHub で開くコンテキストメニューオプションを使用します。
問題のナビゲーションが有効になっている場合のバグ追跡システムの関連する問題: アノテーションの上にマウスを置き、コミットメッセージに含まれている場合は問題のリンクをクリックします。
アノテーションを有効にする
アノテーションに表示される情報量を設定する
アノテーションビューに表示する情報量を選択できます。
アノテーションガターを右クリックして表示を選択し、この変更の起点となった改訂、日付、さまざまな形式の作者の名前、コミット番号など、表示したい情報の種類を選択します。
色でハイライトを設定することもできます。
アノテーションオプションを設定する
アノテーションガターを右クリックして、コンテキストメニューからオプションを選択します。
空白を無視 : 空白文字は無視されます(git
blame -w
)。これは、アノテーションが以前の意味のあるコミットを指すことを意味します。ファイル内の移動を検出 : コミットが同じファイル内で行を移動またはコピーするとき、そのような変更は無視されます(git
blame -M
)。これは、アノテーションが以前の意味のあるコミットを指すことを意味します。ファイル間の移動を検出 : コミットが同じコミットで変更された他のファイルから行を移動またはコピーするとき、そのような変更は無視されます(git
blame -C
)。これは、アノテーションが以前の意味のあるコミットを指すことを意味します。コミットのタイムスタンプを表示 : 変更が作成された時刻ではなく、アノテーションビューで IntelliJ IDEA にコミットタイムスタンプを表示する場合は、このオプションを選択します。
日付形式をカスタマイズする
Ctrl+Alt+S を押して設定を開き、
を選択します。VCS アノテーションの横にある日時パターンフィールドをクリックし、VCS アノテーションに使用する日付形式を指定します。パターンリファレンスを参照してください(英語)。
変更の作成者をエディターに表示する
インレイヒントで要素(メソッドまたはクラス)への最後の変更の作成者を表示するようにエディターを構成できます。オンにするには:
Ctrl+Alt+S を押して設定を開き、
を選択します。コード作成者オプションを選択してください。
作成者名を表示する位置を選択します。
ラインの上に (デフォルト)
右側に
このオプションを有効にすると、エディターで作成者名のヒントをクリックして、アノテーション付きビューを開くことができます。
変更の作成者を非表示にする
エディターでコード作成者の名前を非表示にするには、次のいずれかを実行します。
Ctrl+Alt+S 設定のエディター | インレイヒント | コードビジョンページを開き、コード作成者オプションを無効にします。
エディターで作成者名のヒントを右クリックし、コードビジョンを非表示: コード作成者のインレイヒントを選択します。
以前のリビジョンにアノテーションを付ける
IntelliJ IDEA では、現在のファイルリビジョンだけでなく、以前のリビジョンにアノテーションを付けることができます。アノテーションガターのコンテキストメニューから、次のオプションを選択できます。
リビジョンにアノテーションを追加 : このオプションは、特定の変更がコミットされた後にファイルがどのように見えるかを確認したい場合に役立ちます。これを行うには、この変更を右クリックして、コンテキストメニューからリビジョンにアノテーションを追加を選択します。
以前のリビジョンにアノテーションを追加 : このオプションは、特定の行の最後の変更が無意味である場合、たとえば変更されたのがコードのフォーマットのみである場合に便利です。この場合、ファイルの以前のリビジョンがどのようになっていたかを確認できます。これを行うには、変更を右クリックし、コンテキストメニューから以前のリビジョンにアノテーションを追加を選択します。
リビジョンを非表示 : このオプションは、無関係な変更や管理上の変更が表示されるのを避けるのに役立ちます。これらは通常、低レベルの移行またはフォーマット操作によって導入されます。これらの変更がルート全体に影響を与えると、アノテーションダイアログ内が乱雑になるため、ビューおよび「アノテーション」列から変更を除外することが望ましい場合があります。リビジョンを非表示アクションを使用すると、その場でアノテーション結果からリビジョンを除外し、エディターとガターの両方に結果を表示できます。除外されたリビジョンは、反対のアクション非表示のリビジョンを復元するを使用して復元できます。非表示のリビジョンに関する情報は、エディターの上部にある通知パネルに表示されます。通知パネルの対応するリンクをクリックして、非表示のリビジョンを復元することもできます。
また、ヒストリービューから特定のファイルにアノテーションを付けることもできます。ヒストリータブで、レビューするファイルのバージョンを選択し、対応する行を右クリックし、コンテキストメニューからアノテーションを選択します。
アノテーションを使用する利点の詳細については、この動画を参照してください。
関連ページ:
Git リポジトリの変更を元に戻す
コミットされていない変更を元に戻すコミットする前に、ローカルで行った変更をいつでも元に戻すことができます。コミットツールウィンドウで、元に戻すファイルを 1 つ以上選択し、コンテキストメニューからロールバックを選択するか、を押します。最後のコミット以降に選択したファイルに加えられたすべての変更は破棄され、アクティブな変更リストから消えます。ファイルのステージングを解除するデフォルトでは、IntelliJ IDEA は、変更されたファイルが自動的にステージングされる変更リストの概念を使用する...
タグを使用して特定の Git コミットをマークする
Git を使用すると、コミットにタグを付けて、プロジェクト履歴の特定のポイントをマークし、将来参照できるようにすることができます。例: リリーススナップショットをキャプチャーするためにブランチを作成する代わりに、リリースバージョンに対応するコミットにタグを付けることができます。コミットにタグを割り当てる Git ツールウィンドウを開き、ログタブに切り替えます。目的のコミットを見つけて右クリックし、コンテキストメニューから新規タグを選択します。新しいタグの名前を入力し、OK をクリックします。タグは、...
マージ、リベース、チェリーピックで変更を適用
Git では、あるブランチから別のブランチへの変更を統合するいくつかの方法があります。ブランチのマージ、ブランチのリベース、チェリーピックの個別コミット、コミットから個別の変更を適用する、特定のファイルをブランチに適用する、ブランチのマージ:特定のタスクを実行するために機能ブランチを作成し、機能を完了してテストした後、作業結果をメインコードベースに統合するとします。これを行う最も一般的な方法は、ブランチをマスターにマージすることです。機能ブランチで作業をしている間、チームメイトが master...
Git の競合を解決する
チームで作業しているときに、現在作業中のファイルに誰かが変更をプッシュするという状況に遭遇する可能性があります。これらの変更が重複しない場合(つまり、異なるコード行に変更が加えられた場合)、競合するファイルは自動的にマージされます。しかし、同じ行が影響を受けた場合、Git は無作為に一方を他方を選ぶことはできず、衝突を解決するように求めます。Git では、プル、マージ、リベース、チェリーピック、変更のスタッシュ解除、またはパッチの適用のいずれかの操作を実行しようとすると、競合が発生する可能性があ...
Git と課題トラッカーの統合
IntelliJ IDEA を使用すると、コミットメッセージをバグトラッカーまたは課題データベースに接続し、VCS ログ内のコミットからこれらのコミットに関連する課題に移動できます。コミットメッセージから課題へのナビゲーションを有効にするを押して設定を開き、を選択します。このダイアログを使用して、課題ナビゲーションパターンのリストを作成します。課題ナビゲーションパターンは、コミットメッセージ内の課題 ID パターンを、参照される課題の URL アドレスにマップします。これにより、コミットされた変...
インレイヒント
インレイヒントは、エディターに表示される特別なマーカーであり、呼び出されたメソッドが期待するパラメーターの名前など、コードに関する追加情報を提供します。他の型のヒントは、アノテーション、メソッドのパラメーター、使用箇所などについて通知します(言語によって異なります)。インレイヒントはエディターに表示され、コードに関する追加情報を提供して、読みやすく移動しやすくします。インレイヒントを有効または無効にする設定ダイアログ () を開き、に移動し、インレイヒントのグループを展開して、非表示または表示す...