Git チュートリアル-差分を比較するための diff

胡金庫 2024年2月15日
  1. 作業用コピーとリポジトリの違いを確認する
  2. Git diff 外部ツール
  3. ステージング領域とリポジトリの違いを確認する
Git チュートリアル-差分を比較するための diff

作業コピー(メインファイルで作業しているファイル)とリポジトリの間の変更または相違を表示します。方法を示します。2 番目の部分では、ステージング領域とリポジトリを比較する方法を示します。

作業用コピーとリポジトリの違いを確認する

ファイルを保存すると、作業コピー上のこのファイルはリポジトリ内のファイルとは異なります。しかし、これらの変更をどのように正確に見るのでしょうか?時々、ファイルにいくつかの変更を加え、リポジトリ内の変更を表示したいので、コードを操作しているときは常に、これが頻繁に行われます。メインプロジェクト。

したがって、最初にできることは、git status を確認することです。1つのファイルが変更されていることがわかります。つまり、メインプロジェクトまたはメインリポジトリのファイルとは異なります。git diff と入力して Enter キーを押すと、違いが表示されます。

$ git diff
diff --git a/test1.txt b/test1.txt
index e1dd8e3..448ad04 100644
--- a/test1.txt
+++ b/test1.txt
@@ -1,2 +1,2 @@
-This is my first Git repository.
-New added text.
\ No newline at end of file
+This was my first Git repository.
+This line is updated.
\ No newline at end of file

git bash の赤色のテキストはリポジトリの内容を示し、緑色のテキストはテキストの変更方法を示します。

最後のコミット後にさらにファイルが更新されている場合、Git はファイルの違いを 1つずつリストします。

Git diff 外部ツール

git のデフォルトの diff ツールに慣れていない場合は、difftool を好みのものに設定できます。

kdiff3 を Git の diffmerge ツールとして設定する方法を示します。

.gitconfig ファイルのディレクトリを変更する

Windows OS では、ディレクトリ C:\Users\username にある .gitconfig ファイルを開き、ファイルにテキストを追加します。

[diff]
    tool = kdiff3
[difftool "kdiff3"]
    path = "C:/Program Files/KDiff3/kdiff3.exe"
    trustExitCode = false
[difftool]
    prompt = false
[merge]
    tool = kdiff3
[mergetool "kdiff3"]
    path = "C:/Program Files/KDiff3/kdiff3.exe"
    trustExitCode = false
[mergetool]
    keepBackup = false

ここで、pathkdiff3 のインストールされたパスであり、あなたの側で異なる可能性があります。

git bash 経由で difftool を設定する

git bash のコマンドを使用して、difftool または mergetool を設定することもできます。

git config --global --add merge.tool kdiff3
git config --global --add mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global --add mergetool.kdiff3.trustExitCode false

git config --global --add diff.guitool kdiff3
git config --global --add difftool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global --add difftool.kdiff3.trustExitCode false
git config --global --add difftool.prompt false

.gitconfig ファイルの内容を変更するのと基本的に同じことを行いました。

ステージング領域とリポジトリの違いを確認する

git difftool コマンドを使用して、作業コピーとリポジトリのファイルの違いを確認できます。

Git Difftool-kdiff3

git diff は作業コピーとリポジトリの違いを示し、ファイルが既にステージング領域に追加された後、 git diff はステージング領域とリポジトリを比較しないため、このファイルの違いを表示しません。、そのため、このファイルはまだリポジトリ内のファイルとは異なりますが、すべてが最新のように見えます。

ステージングを比較する適切なコマンドは、リポジトリは git diff の後ろにオプション --staged を追加することです。

$ git diff --staged
diff --git a/test1.txt b/test1.txt
index e1dd8e3..448ad04 100644
--- a/test1.txt
+++ b/test1.txt
@@ -1,2 +1,2 @@
-This is my first Git repository.
-New added text.
\ No newline at end of file
+This was my first Git repository.
+This line is updated.
\ No newline at end of file
著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook