
Git гэж юу вэ? Программистуудын "Цаг хугацааны машин"

Б.Батномин
Багш


Б.Батномин
Багш
Git бол файлд орсон өөрчлөлт бүрийг түүхчлэн хадгалдаг version control буюу хувилбарын хяналтын систем юм. Энгийнээр хэлбэл, энэ бол таны төслийн «цаг хугацааны машин».
Компьютерын тоглоом тоглохдоо хэцүү шатны өмнө save хийдэгтэй адил. Git-ийн тусламжтай та ажлынхаа тодорхой мөчийг хадгалж үлдээнэ. Дараа нь ямар нэг зүйл эвдэрвэл тэр хадгалсан цэг рүүгээ буцаж очиж болно.
Гэхдээ Git зөвхөн хадгалаад зогсохгүй. Хэн, хэзээ, аль файлын ямар мөрийг өөрчилсөн, яагаад өөрчилсөн гэдгийг бүгдийг нь тэмдэглэж авдаг.
Git нь үнэ төлбөргүй, нээлттэй эхийн программ бөгөөд Windows, macOS, Linux бүгд дээр ажилладаг.
Git 2005 онд Linux үйлдлийн системийг бүтээгч Линус Торвальдсын санаачилгаар төржээ.
Linux бол дэлхийн өнцөг булан бүрээс олон мянган хүн хамтран бичдэг асар том төсөл. 1991–2002 онд хөгжүүлэгчид өөрчлөлтөө файл болгон бие биедээ илгээж солилцдог байсан. 2002 оноос BitKeeper хэмээх арилжааны хэрэгсэл ашиглаж эхэлсэн ч 2005 онд түүнийг үнэгүй ашиглах эрх нь цуцлагдсан.
Ингээд Linux-ийн баг өөрсдөө шинэ хэрэгсэл бүтээхээр шийдэж, дараах зорилгуудыг тавьжээ:
Маш хурдан ажиллах
Энгийн бүтэцтэй байх
Олон мянган зэрэгцээ салаа (branch) дээр нэгэн зэрэг ажиллах боломжтой байх
Бүрэн тархсан буюу хүн бүрийн компьютерт төслийн бүтэн хуулбар байх
Linux шиг том төслийг хурдан, үр ашигтай удирдах
Энэ зорилгууд нь өнөөдөр ч Git-ийн хамгийн гол давуу тал хэвээр байна.
Git-ийн ажиллагааг ангийн хамтын зураг авахуулахтай зүйрлэж болно. Анги дотор сурагчид чөлөөтэй хөдөлж байна. Багш зурагт орох хүмүүсийг тайзан дээр дуудаж, бүгд байраа эзэлсний дараа зураг авна. Тэр зураг альбомд үүрд хадгалагдана.
Git-д яг үүнтэй адил гурван хэсэг бий:
Working directory (ажлын хавтас) — таны файлуудыг засаж, өөрчилж буй газар. Энэ бол сурагчид чөлөөтэй хөдөлж буй анги.
Staging area (бэлтгэлийн талбай) — дараагийн хадгалалтад оруулах өөрчлөлтүүдээ сонгож тавьдаг газар. Энэ бол зурагт орох хүмүүс зогсох тайз. Үүнд git add команд ашиглана.
Repository (репозитори) — хадгалсан бүх хувилбарын түүх. Энэ бол альбом. Үүнд git commit командаар хадгална.

Нэг удаагийн хадгалалтыг commit гэдэг. Commit бүр өөрийн давтагдашгүй дугаартай бөгөөд хэн, хэзээ хийснийг тэмдэглэнэ. Мөн яагаад өөрчилснийг тайлбарласан богино зурвас хавсаргадаг.

Ийм commit-үүд дараалан хуримтлагдаж, төслийн бүрэн түүх бий болно. Хүссэн үедээ аль ч commit руу буцаж очих боломжтой.
Git-ийн хамгийн хүчирхэг боломж бол branch буюу салаа. Branch нь төслийнхөө хуулбар дээр бусдад саад болохгүйгээр commit-үүд дараалан хуримтлагдаж, төслийн бүрэн түүх бий болно. Хүссэн үедээ аль ч commit руу буцаж очих боломжтой. туршилт хийх боломж олгодог.
Жишээ нь, та ажиллаж байгаа тоглоомдоо шинэ баатар нэмэхийг хүслээ. Үндсэн код (main салаа) хэвийн ажиллаж байгаа тул түүнийг эвдэх эрсдэл гаргамааргүй байна. Тэгвэл шинэ салаа үүсгээд, тэндээ чөлөөтэй туршина.

Туршилт амжилттай болбол шинэ салааг үндсэн салаатай нийлүүлнэ. Үүнийг merge гэдэг. Харин бүтэлгүйтвэл салааг зүгээр л устгахад үндсэн код огт өөрчлөгдөхгүй.
Том компаниудад нэг төсөл дээр олон хүн зэрэг ажиллахдаа хүн бүр өөрийн салаан дээр ажиллаж, бэлэн болсон хойноо нэгтгэдэг. Ингэснээр нэг нь нөгөөгийнхөө ажлыг дарж бичихгүй.
Үгүй. Энэ хоёрыг олон хүн андуурдаг.
Git бол таны компьютер дээр суулгадаг программ. Интернэтгүй байсан ч ажиллана. GitHub бол Git-ийн репозиторийг интернэтэд байршуулж, бусадтай хуваалцах вэб үйлчилгээ.
Зүйрлэвэл, Git бол камер, харин GitHub бол зургаа байршуулж найзуудтайгаа хуваалцдаг онлайн альбом. Камергүйгээр альбом хоосон, альбомгүйгээр зураг тань зөвхөн өөрт тань үлдэнэ.
Компьютер дээрх commit-үүдээ GitHub руу git push командаар илгээж, багийнхаа хийсэн өөрчлөлтийг git pull-ээр татаж авна.

GitHub-ийн 2025 оны тайланд дурдсанаар тус платформын хөгжүүлэгчдийн тоо 180 саяыг давж, репозиториудын тоо 630 саяд хүрчээ. GitHub-ээс гадна Git-тэй ажиллах боломж олгодог GitLab, Bitbucket зэрэг платформууд бий.
Сурагч, оюутнуудын хувьд GitHub нь өөрийн ур чадвар, хийсэн төслүүдээ харуулах чухал портфолио болж чадна. Төслүүдээ GitHub дээр байршуулснаар ирээдүйн багш, дадлагын удирдагч эсвэл ажил олгогч таны код, төсөл хэрэгжүүлэх чадвар, сурч хөгжиж буй явцтай танилцах боломжтой.
Git-ийг git-scm.com сайтаас үнэгүй татаж суулгана. Дараа нь Terminal (Windows дээр Git Bash) нээгээд дараах командуудыг дарааллаар нь бичээрэй.
# 1. Өөрийгөө танилцуулах (зөвхөн нэг удаа)
git config --global user.name "Таны нэр"
git config --global user.email "tanii@email.com"
git config --global init.defaultBranch main
# 2. Шинэ төсөл үүсгэж, Git-ийг асаах
mkdir minii-tusul
cd minii-tusul
git init
# 3. Ямар нэг файл үүсгээд төлөвийг шалгах
git status
# 4. Өөрчлөлтийг тайзан дээр гаргах
git add .
# 5. Хадгалах буюу commit хийх
git commit -m "Анхны commit"
# 6. Түүхээ харах
git log --onelineBranch туршиж үзэхийг хүсвэл:
git switch -c shine-baatar # шинэ салаа үүсгээд шилжих
# ... файлаа засаад add, commit хийнэ ...
git switch main # үндсэн салаа руу буцах
git merge shine-baatar # шинэ салааг нийлүүлэхКомандын мөр хэцүү санагдвал GitHub Desktop эсвэл VS Code-ийн Git хэсгийг ашиглаж болно. Тэнд эдгээр үйлдлийг товч дарж гүйцэтгэдэг. Гэхдээ цаана нь яг эдгээр командууд ажилладаг гэдгийг санаарай.
Git бол зөвхөн мэргэжлийн программистуудын хэрэгсэл биш. Энэ бол ажлаа алдахгүй хадгалах, алдаа гарвал буцаах, бусадтай зөрчилгүй хамтран ажиллах арга барил юм.
Код бичиж сурч эхэлж буй бол Git-ийг аль болох эрт хэрэглэж эхлээрэй. Сургуулийн жижиг төсөл ч бай, commit хийх зуршил тань ирээдүйд том багтай ажиллахад хамгийн их хэрэгтэй ур чадвар болно.
Дараагийн удаа «эцсийн_ЖИНХЭНЭ_2» гэсэн файл үүсгэх гэж байгаа бол нэг зүйлийг санаарай: үүний оронд git commit гэж бичихэд л хангалттай.
[1] Pro Git ном — A Short History of Git
[2] GitHub — Octoverse 2025: A new developer joins GitHub every second (2025 оны 10-р сар)