Git / git status ба git log

git status ба git log

Кодтой ажиллах явцад хоёр асуулт байнга гардаг: "одоо ямар байдалтай байна?" ба "өмнө юу хийсэн бэ?" — git status болон git log тэр хоёр асуултад хариулна.

git status — одоогийн байдал

bash
git status

Файлуудын гурван боломжит төлвийг харуулна:

код
On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:        ← staging area-д байгаа
  modified:   index.html

Changes not staged for commit:  ← засварлагдсан, нэмэгдээгүй
  modified:   style.css

Untracked files:                ← Git мэдэхгүй шинэ файл
  script.js

Untracked — шинэ файл, Git хянаж эхлээгүй. git add хийх хэрэгтэй.

Modified, not staged — Git мэдэх файл засварлагдсан, гэхдээ staging area-д нэмэгдээгүй.

Staged — staging area-д байгаа, commit-д бэлэн.

Товч хэлбэр

bash
git status -s
код
M  index.html    ← staged modified
 M style.css     ← unstaged modified
?? script.js     ← untracked

Зүүн баганад staging area, баруун баганад ажлын фолдерийн төлөв харагдана.

git log — commit түүх

bash
git log
код
commit a1b2c3d4e5f6... (HEAD -> main, origin/main)
Author: Болд Батаа <bold@example.com>
Date:   Mon Jan 13 14:22:00 2025 +0800

    feat(auth): нэвтрэх хуудас нэмэх

commit 9f8e7d6c5b4a...
Author: Болд Батаа <bold@example.com>
Date:   Sun Jan 12 10:05:33 2025 +0800

    fix: API холболтын алдаа засах
...

q дарахад гарна. Commit олон байвал нэг дор харагдахгүй, зай дарахад дараагийн хуудас руу шилжинэ.

git log --oneline — богино хэлбэр

bash
git log --oneline
код
a1b2c3d feat(auth): нэвтрэх хуудас нэмэх
9f8e7d6 fix: API холболтын алдаа засах
3c2b1a0 docs: readme шинэчлэх
f4e3d2c feat: суурь бүтэц үүсгэх

Нэг мөрт хэлбэр — хамгийн их ашиглагддаг. Hash богиносгогдсон (7 тэмдэгт), мессеж нь харагдана.

git log --graph — салаалсан түүх

bash
git log --oneline --graph --all
код
* a1b2c3d (HEAD -> main) feat(auth): нэвтрэх хуудас нэмэх
* 9f8e7d6 fix: API холболтын алдаа засах
| * 7f6e5d4 (feature/profile) feat: профайл хуудас эхлэх
|/
* 3c2b1a0 docs: readme шинэчлэх

* тэмдэг — commit. | шугам — branch. Branch үүсч, merge хийгдэх үед энэ харагдах хэлбэр ашигтай.

git log — шүүх боломжууд

Тодорхой хэрэглэгчийн commit-ийг харах:

bash
git log --author="Болд"

Тодорхой файлтай холбоотой commit-ийг харах:

bash
git log -- index.html

Commit тоогоор хязгаарлах:

bash
git log -5          # Сүүлийн 5 commit

Огноогоор шүүх:

bash
git log --since="2025-01-01" --until="2025-01-31"

Мессежэд текст хайх:

bash
git log --grep="засах"

git show — тодорхой commit харах

Commit-ийн бүрэн мэдээлэл болон өөрчлөлтийг харах:

bash
git show a1b2c3d
код
commit a1b2c3d...
Author: Болд Батаа <bold@example.com>
Date:   Mon Jan 13 14:22:00 2025 +0800

    feat(auth): нэвтрэх хуудас нэмэх

diff --git a/app/(auth)/login/page.tsx b/app/(auth)/login/page.tsx
new file mode 100644
index 0000000..f3a4b5c
--- /dev/null
+++ b/app/(auth)/login/page.tsx
@@ -0,0 +1,24 @@
+export default function LoginPage() {
+  return (
+    ...

+ тэмдэгтэй мөр — нэмэгдсэн. - тэмдэгтэй мөр — устгагдсан.

Хамгийн сүүлийн commit-ийг харах:

bash
git show HEAD

HEAD нь одоогийн ажиллаж байгаа commit-ийг заадаг тусгай заагч.

Дараагийн хичээлд:

git diff ашиглан staged болон unstaged өөрчлөлтүүдийг нарийвчлан харах аргыг судална.