Git でコミットされていない変更の差分の詳細を表示する
この記事では、Git でコミットされていない作業の diff
詳細を取得する方法について概説します。 git diff
コマンドを使用して、さまざまな Git 参照 (コミット、インデックス、作業ツリーなど) の違いを表示します。
以下で説明するように、コマンドを使用して、コミットされていない作業の詳細を表示できます。
Git でコミットされていない変更の差分の詳細を表示する
コンテキストを簡単にするために、例を使用します。 下の画像が、リポジトリ内の作業ディレクトリの現在の状態を表しているとしましょう。
上記の両方のファイルは、コミットされていない作業のカテゴリに分類されます。 ただし、git diff
コマンドは、ステージングされたファイルとステージングされていないファイルに対して同じようには機能しません。
より明確な図として、パラメーターなしの基本的な git diff
から始めましょう。
$ git diff
出力:
パラメーターなしの git diff
コマンドは、ステージングされていないファイルの変更のみを表示することに気付くでしょう。 Git のドキュメントによると、パラメーターを指定せずに git diff
コマンドを実行すると、インデックスに関連する変更が表示されます。
これらの変更はインデックスに反映されるはずですが、まだ追加されていません。
ステージングされたファイルの diff
の詳細を表示するにはどうすればよいですか?
ステージングされたファイルの変更を表示するには、以下に示すように git diff
コマンドを使用します。
$ git diff --cached
結果:
git diff
コマンドに --cached
フラグを追加すると、ステージングされたファイルの diff
の詳細が表示されることがわかります。 その通り、Git のドキュメントには、git diff --cached
は現在のコミット (HEAD
) に関連するステージングされた変更を表示すると記載されています。
コマンドを個別に実行したくない場合はどうすればよいでしょうか?
ステージングされた変更とステージングされていない変更の両方の diff
の詳細を表示するには、以下に示すように git diff
コマンドを実行します。
$ git diff HEAD
結果:
git diff HEAD
コマンドは、作業ディレクトリと現在のコミットの間の diff
の詳細を表示します。
ボーナスヒント
上記の diff
の詳細を読むのが難しい場合は、Meld などのサードパーティの difftool
を使用できます。
簡単に言えば、git diff
コマンドを操作して、ファイルのカテゴリに応じて、コミットされていない作業の diff
の詳細を表示できます。 Git でステージングされたファイルとステージングされていないファイルの diff
の詳細を表示する方法を見てきました。
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn