Gitのdiff
コマンドは、プロジェクトの変更を理解するために非常に役立ちます。ファイルの異なるバージョンを比較し、修正箇所を特定し、コミットする前に変更を確認することができます。このチュートリアルでは、git diff
の主要な使用方法を、明確さと実践的な応用を重視して説明します。
目次
作業コピーとリポジトリの比較
作業コピーは、ローカルマシン上のプロジェクトファイルを表します。リポジトリは、Gitによって管理されるバージョン履歴を格納します。git diff
(引数なし)は、作業コピー内のステージングされていない変更を表示します。
git diff
出力には、追加(+
)、削除(-
)、および変更が表示されます。例:
--- a/my_file.txt
+++ b/my_file.txt
@@ -1,3 +1,4 @@
This is line 1
This is line 2
+This is a new line
This is line 3
これは、my_file.txt
に新しい行が追加されたことを示しています。--- a/
と+++ b/
は、古いファイルバージョンと新しいファイルバージョンを表します。特定のファイルを比較するには:
git diff my_file.txt
ステージングエリアとリポジトリの比較
ステージングエリアは、次のコミットのために準備した変更を保持します。git diff --staged
(またはgit diff --cached
)は、ステージングされた変更と最後のコミットとの違いを示します。
git diff --staged
これは、コミットする前に変更を確認するために重要です。ファイル名を指定して比較を制限することができます。
外部Diffツールの使用
Gitのデフォルトのテキストベースのdiffは、複雑な変更には難しい場合があります。外部Diffツールは、視覚的な比較、構文の強調表示、その他の便利な機能を提供します。git config
を使用して外部ツール(Meld、KDiff3、Beyond Compareなど)を設定します。
git config --global diff.external meld
meld
をツールのコマンドに置き換えてください。コマンドと必要なシステム固有の調整については、ツールのドキュメントを参照してください。
高度なgit diff
オプション
git diff
には、他にも多くのオプションがあります。例えば:
git diff --check
:空白エラーを検出します。git diff --summary
:変更の簡潔な概要を提供します。git diff <commit1>..<commit2>
:2つのコミットを比較します。git diff --word-diff
:単語単位で変更を強調表示します。
これらのオプションを試して、git diff
を自分のワークフローに合わせて調整してください。git diff
を習得することは、効率的なGitの使用に不可欠です。