git diff
git status нь ямар файл өөрчлөгдснийг харуулдаг бол git diff нь тэр өөрчлөлтийн агуулгыг мөр мөрөөр харуулдаг. Кодын юу нэмэгдэж, юу устгагдсаныг олж харах хамгийн хэрэгтэй хэрэгсэл.
git diff — unstaged өөрчлөлт
Staging area-д нэмэгдээгүй (ажлын фолдерийн) өөрчлөлтийг харах:
git diff
Гаралт:
diff --git a/app/page.tsx b/app/page.tsx
index 3a4b5c6..7d8e9f0 100644
--- a/app/page.tsx
+++ b/app/page.tsx
@@ -10,7 +10,9 @@ export default function Home() {
return (
<main>
- <h1>Сайн уу</h1>
+ <h1>Сайн уу, дэлхий!</h1>
+ <p>Тавтай морил</p>
</main>
)
}
Diff унших арга
--- a/app/page.tsx ← хуучин хувилбар (commit-д байгаа)
+++ b/app/page.tsx ← шинэ хувилбар (одоогийн файл)
@@ -10,7 +10,9 @@ ← хуучин 10-р мөрөөс 7 мөр / шинэ 10-р мөрөөс 9 мөр
| Тэмдэг | Утга |
| ---------- | ------------------------------ |
| - улаан | Устгагдсан мөр |
| + ногоон | Нэмэгдсэн мөр |
| Тэмдэггүй | Өөрчлөгдөөгүй, зөвхөн контекст |
Мөрийн агуулга өөрчлөгдсөн үед Git тэр мөрийг устгасан (-) ба шинэ мөр нэмсэн (+) гэж харуулна — "засварлах" тэмдэг байдаггүй.
git diff --staged — staged өөрчлөлт
git add хийсний дараа git diff хоосон гарна — staging area-д байгаа өөрчлөлтийг харахад --staged тугийг нэмнэ:
git diff --staged
Эсвэл --cached тугийг ашиглаж болно (яг адил):
git diff --cached
Commit хийхийн өмнө staging area-д яг юу байгааг шалгахад хэрэглэнэ.
git diff <branch> — branch хооронд харьцуулах
Одоогийн branch болон өөр branch-ийн ялгааг харах:
git diff main
Хоёр branch хоорондын ялгаа:
git diff main feature/login
Тодорхой commit хоорондын ялгаа (hash ашиглан):
git diff 9f8e7d6 a1b2c3d
Тодорхой файлын diff:
git diff main -- app/page.tsx
Статистик харах
Ямар файл хэр их өөрчлөгдсөнийг агуулгагүйгээр харах:
git diff --stat
app/page.tsx | 4 ++--
style.css | 12 ++++++------
2 files changed, 8 insertions(+), 8 deletions(-)
difftool — визуал харьцуулагч
Terminal-ийн diff унших хэцүү санагдвал визуал хэрэгсэл ашиглаж болно. VS Code-ийг difftool болгон тохируулах:
git config --global diff.tool vscode
git config --global difftool.vscode.cmd 'code --wait --diff $LOCAL $REMOTE'
Тохируулсны дараа:
git difftool
VS Code нь хоёр хувилбарыг дэлгэцийн хоёр талд зэрэгцүүлэн харуулна. q дарахад дараагийн файл руу шилжинэ.
Практик зөвлөмж
git diff болон git diff --staged-г commit хийхийн өмнө заавал ашиглах зуршил хий. Ингэснээр санаандгүй кодын үлдэгдэл (console.log, тест дата, нууц утга) commit-д орохоос сэргийлнэ.
# Workflow
git diff # Нэмэхийн өмнө юу байгааг шалгах
git add .
git diff --staged # Commit хийхийн өмнө дахин шалгах
git commit -m "..."
Дараагийн хичээлд:
.gitignore файл ашиглан Git-д хянуулахгүй файлуудыг тодорхойлох аргыг судална.