Git үндсэн ойлголтууд
work hard, rest well
Оюутны ширээнээс салан ажлын байран дээр гарч ирэхэд юуны түрүүнд багтай ажиллах арга барилд суралцах хэрэгтэй болдог. Гэтэл ганцаараа ажиллаж ирсэн хүнд багтаа тааруулан хийж байгаа зүйлээ хуваалцахад GIT ашиглах шаардлагатай болно. Ашиглаад ирэхээр git гэдэг нь ойр мэт боловч хол зүйл болж таардаг. Яагаад ийм хол санагдаад байна вэ, хэрхэн дотно мэт санагдуулах вэ гэвэл үндсэн ойлголтуудыг үндэс суурьтай ойлгох шаардлагатай гэж бодном. Тиймээс энэ удаагийн бичлэгээрээ энэхүү сэдвийг сонголоо.
Git гэж юу вэ?
Багаар ажиллахад олон хэрэглэгч нь нэг файлтай ажиллах хэрэгтэй болдог. Заримдаа нэгэн зэрэг өөрчлөлт орох үе байх бөгөөд эдгээр өөрчлөлт нь хувилбар гэдэг зүйлд хадгалагдан нэгтгэгдэх боломж олгосон загвар байдаг. Энэхүү загварыг Version Control System (VCS) гэдэг. Энэ загвараар мэдээлэл удирддаг CVS, Subversion, Bazaar гэх мэт олон хэрэгслүүд байдаг боловч сүүлийн үед Git нь өргөнөөр хэрэглэгдэж байна. Git нь тархсан Version Control System (VCS) бөгөөд, хэрэглэгч бүр нь өөр дээрээ тухайн файлын бүх өөрчлөлтийн түүхийг аван хэрэглэдэг.
Git ийн ажиллагаа
Юуны түрүүнд Repository гэдэг ойлголт байдаг бөгөөд энэ нь файлын цуглуулгыг заасан мэдээлэл байдаг. Энэхүү мэдээлэлд файлын өөрчлөлтийн мэдээллүүд болон тэрхүү өөрчлөлтийн түүх нь хадгалагдаж байдаг. Энэхүү Repository мэдээлэл нь хянаж байгаа хавтасны дотор .git/
гэсэн хавтсанд хадгалагддаг. git clone
эсвэл git init
хийснээр тухайн хэрэглэгчийн төхөөрөмжид Repository мэдээлэл хуулан үүсгэж тухайн төхөөрөмжид хамаарах төлөвүүдийн мэдээллийг хадгалдаг.
Repository дээр ажиллахад дараах дөрвөн хэллэгийг ойлгох хэрэгтэй.
- Working Directory буюу хэрэглэгчийн татаж авсан файлтай хэсэг
- Staging Area буюу дотоод өөрчлөлт хянах хэсэг (commit өмнөх)
- Local Repository буюу дотоод өөрчлөлт хянах хэсэг
- Remote Repository буюу сервер талын өөрчлөлт хянах хэсэг
Файлын агуулгыг өөрчилснөөр тухайн файл нь зөвхөн Working Directory
д өөрчлөлт нь байдаг. git add
хийснээрээ тухайн өөрчлөлтийг Staging Area
руу хуулдаг. git commit
хийснээр тухайн өөрчлөлт нь Local Repository
руу хуулагддаг бөгөөд өдийг хүртэл хийсэн зүйлс нь зөвхөн тухайн хэрэглэгчийн төхөөрөмж дээр байдаг. Тэгвэл git push
хийснээрээ сервер талд өөрчлөлт орж бусад хэрэглэгчдэд тухайн мэдээлэл очих боломжтой болдог байна.
git fetch
нь сервэр дээрх хамгийн сүүлийн мэдээллийг Local Repository
руу татаж ирдэг бол git merge
нь Local Repository
дээрх өөрчлөлтийг Working Directory
руу оруулдаг. Тэгвэл git pull
нь Remote Repository
дээрх мэдээллийг шууд Working Directory
руу татаж оруулдаг ба git fetch
хийгээд git merge
хийсэнтэй ижил үүрэг гүйцэтгэдэг.
Git ашиглах
Git нь програм бөгөөд ашиглах бол эхлээд төхөөрөмж дээрээ суулгасан байх шаардлагатай.
Git суулгах бол эндээс татаж болно.
Мөн суулгасныхаа дараагаар өөрийгөө таниулсан тохиргоог хийх шаардлагатай. Хэрэв анх удаа хэрэглэх гэж байгаа бол ssh key
үүсгэх боловч хэрэв өмнө нь хэрэглэж байсан бол тухайн ssh key
үргэлжлүүлэн ашиглах нь таныг өмнө нь хийж байсантай ижил хүн гэж тодорхойлоход хэрэгтэй.
Git тохиргооны талаар судлах бол эндээс үзэж болно.
Тохиргоогоо хийсэн бол үндсэн командуудыг ашиглан үзэж болох бөгөөд сервэртэй ажиллах команд ашиглахыг хүсвэл Gitlab эсвэл Github гэх мэт сервер дээр бүртгэл хийгээд ашиглах боломжтой.
Git branch гэж юу вэ?
Branch
гэдэг нь тухайн нэг төлөвөөс хуулбарлан салаалсан хэсгүүдийг хэлэх бөгөөд хийгдсэн өөрчлөлтүүд нь тодорхой үйлдэл хийхгүй бол бие биедээ нөлөөлдөггүй. Үүнийг хэрэглэгч нь өөрийн хийх өөрчлөлтийг бусдын өөрчлөлттэй холихгүйн тулд ашигладаг бөгөөд ихэвчлэн develop
гэсэн нэртэй хөгжүүлэлтэд зориулсан branch
аас шинэ branch
салгаад хийсэн өөрчлөлт нь боллоо гэж үзсэн үед эргээд develop
руу нийлүүлдэг. master branch
нь хэрэглэгдчидэд хүрэх хувилбар байдаг тул шууд өөрчлөлтийг оруулдаггүй.
Git stash гэж юу вэ?
Бид Working Directory
дээр өөрчлөлт хийж байгаад сервер дээрх шинэ өөрчлөлтийг авч нийлүүлэх гэх мэт шаардлага гардаг. Гэвч Working Directory
өөрчлөлттэй тул өөрчлөлтийг байхгүй болгохгүй болгох хэрэгтэй байдаг. Энэ үед git stash
ийг өргөнөөр ашигладаг.
git stash
нь stack байдлаар өөрчлөлтийн хуулбарыг git stash
командаар хадгалдаг.
Stack ийн талаар эндээс уншиж болно.
Ингэж хадгалсан өөрчлөлтийг тухайн серверээс авсан шинэ өөрчлөлтийг оруулсны дараагаар ахин git stash pop
командаар дуудан оруулж хуучин хийж байсан Working Directory
төлөвтэй ойролцоо төлөвт шилжих боломжтой болдог.
Git ийн өргөн хэрэглээний командууд
git clone <repository url>
:Remote Repository
ийг хэрэглэгчийн төхөөрөмж дээр хуулан авч ирнэ.git init <repository name>
: Хэрэглэгчийн төхөөрөмж дээр шинэ хоосонRepository
үүсгэнэ.git checkout -b <branch name>
:Local Repository
дээр шинэbranch
үүсгэнэ.git checkout <branch name>
:branch
хооронд солино.git branch <branch name>
:branch
хооронд солино.git branch -d <branch name>
:Local Repository
дээрbranch
устгана.git status
: Одоо ажиллаж байгааWorking Directory
дээрх төлөвийг харуулна.git diff
:Working Directory
дээрх өөрчлөлтийгStaging Area
дахь өөрчлөлттэй харьцуулан харуулна.git add <file path>
эсвэдgit add .
: Заагдсан байрлал эсвэл бүх өөрчлөлтийгWorking Directory
аасStaging Area
руу нэмдэг.git commit -m "<commit message>"
:Staging Area
дээрх мэдээллийгcommit message
өөрчлөлтийн түүхтэйгээрLocal Repository
руу оруулна.git push
:Local Repository
дээрх мэдээллийгRemote Repository
руу оруулна.git push --set-upstream origin <branch name>
:Remote Repository
дээр холбогдохbranch
зааж өгнө. Энэ нь ихэвчлэнLocal Repository
дээр үүссэн шинэbranch
үед зааж өгөх шаардлага гардаг.git pull
:Remote Repository
дээрх мэдээллийг шуудWorking Directory
руу татаж оруулна.
Энэ удаад энэхүү бичлэгээ үүгээр дуусгая гэж бодож байна. Амжвал үргэлжлүүлээд ахисан төвшний хэрэглээний талаарх бичлэг оруулна аа.
Эх сурвалжууд