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