git commit
Staging area-д бэлдсэн өөрчлөлтүүдийг repository-д үүрд хадгалах үйлдлийг commit гэдэг. Commit бүр дугаартай, огноотой, зохиогчтой, мессежтэй.
git commit -m — мессежтэй commit
git commit -m "Нэвтрэх хуудас нэмэх"
-m тугийн дараа давхар хашилтад commit мессежийг бичнэ. Мессежгүй commit хийх боломжгүй — Git editor нээж мессеж оруулахыг шаардана.
Гаралт:
[main 3f2a1bc] Нэвтрэх хуудас нэмэх
2 files changed, 47 insertions(+), 3 deletions(-)
main— одоогийн branch3f2a1bc— commit-ийн богино hash (SHA-1 дугаар)47 insertions, 3 deletions— нэмэгдсэн, устгагдсан мөрийн тоо
git commit -am — нэмэх ба commit нэг дор
Tracked (Git-д мэдэгдэх) файлуудын өөрчлөлтийг git add хийлгүйгээр шууд commit хийх:
git commit -am "Товчны өнгө засах"
-a тугийн сул тал: шинээр үүсгэсэн (untracked) файлуудыг оруулдаггүй — тэдгээрийг заавал git add хийх хэрэгтэй.
Тиймээс -am-г зөвхөн аль хэдийн track хийгдэж байгаа файлуудад ашигладаг.
Сайн commit message бичих дүрэм
Commit message нь таны ирээдүйн өөртөө болон хамтарч ажиллаж буй хүмүүст зориулсан тэмдэглэл. Муу мессеж — "засвар", "update", "aaa". Сайн мессеж — юу хийснийг товч тайлбарласан.
Дүрмүүд:
1. Эхний мөр 50 тэмдэгтээс богино байх
2. Тушаалын хэлбэрээр бичих: "нэмэх", "засах", "устгах"
3. Яагаад хийснийг мэдэхэд хэцүү бол 2-р мөрөөс тайлбарлах
4. Period (.) цэг тавихгүй
Муу vs сайн:
❌ fixed stuff
❌ update
❌ wip
✅ Нэвтрэх хуудасны алдааны мессеж засах
✅ Хэрэглэгчийн профайл хуудас нэмэх
✅ API дуудлагын хугацааны хязгаарыг 5 секунд болгох
Дэлгэрэнгүй тайлбар шаардлагатай үед:
git commit -m "Нэвтрэлтийн алдааг засах
Supabase session дууссан үед хэрэглэгчийг /login руу
дахин чиглүүлдэггүй байсан. refreshSession() дуудлага
нэмж асуудлыг шийдлэм."
Эхний мөр — товч гарчиг. Хоосон мөрийн дараа — дэлгэрэнгүй тайлбар.
Conventional Commits
Олон баг commit message-д стандарт бүтэц ашигладаг — Conventional Commits:
<төрөл>(<хамрах хүрээ>): <тайлбар>
Үндсэн төрлүүд:
| Төрөл | Тайлбар |
| ---------- | ------------------------------------------ |
| feat | Шинэ боломж нэмэх |
| fix | Алдаа засах |
| docs | Зөвхөн баримт бичиг |
| style | Форматлалт, цагаан зай (логик өөрчлөлтгүй) |
| refactor | Кодын бүтэц сайжруулах |
| test | Тест нэмэх эсвэл засах |
| chore | Build процесс, хэрэгслүүд |
Жишээнүүд:
feat(auth): нэвтрэх хуудас нэмэх
fix(api): хугацаа дуусах алдааг засах
docs(readme): суулгах заавар шинэчлэх
style(nav): navbar-ийн зай тохируулах
refactor(db): Supabase query-г функцэд хуваах
chore: next.js 15.2 руу шинэчлэх
Conventional Commits ашигласнаар changelog автоматаар үүсгэх, version дугаар автоматаар ахиулах боломжтой болдог.
Commit цуцлах — amend
Сүүлийн commit-ийн мессежийг засах (push хийгдээгүй байх ёстой):
git commit --amend -m "Зөв мессеж"
Мартагдсан файл сүүлийн commit-д нэмэх:
git add мартсан-файл.ts
git commit --amend --no-edit
--no-edit тугийн ачаар мессежийг дахин бичихгүй, зөвхөн файл нэмнэ.
Дараагийн хичээлд:
git status болон git log ашиглан repository-ийн одоогийн байдал болон commit түүхийг харах аргыг судална.