Ачааллж байна...
Өмнөх хичээлд бид git-dadlaga фолдерт repository үүсгэж, хэдэн файл нэмээд, git status-ээр тэдгээрийг untracked буюу хянагдаагүй төлөвт байгааг харсан. Цомог бэлэн, өрөөнд зүйлс бий, гэхдээ нэг ч зураг аваагүй байна. Энэ хичээлд бид анхны зургаа авна. Үүний тулд Git-ийн хамгийн чухал, өдөр бүр давтагддаг мөчлөгийг сурна: файлуудыг сонгох, дараа нь зураг авах. Сонгох үйлдлийг git add, зураг авах үйлдлийг git commit гэдэг. Энэ хоёр алхмын хооронд staging area гэдэг ойлголт бий бөгөөд анхлан суралцагчдын хамгийн их төөрөлддөг газар нь яг энэ. Тиймээс бид түүнийг яаралгүй, зүйрлэлээр, алхам бүрт git status-ээр шалгаж байж бүрэн ойлгоно.
Энэ хичээлийн төгсгөлд та Git-ийн файл бүрийн гурван төлөвийг таньж, git status-ийн гаралтаас аль файл аль төлөвт байгааг шууд уншдаг болно. Мөн ирээдүйн өөртөө ойлгомжтой commit message хэрхэн бичихийг ярилцана. Өмнөх хичээлийн git-dadlaga фолдер, zarlaga.py, tsalin.py, data/notes.txt файлууд хэвээрээ байгаа гэж үзэж байна.
Таныг том агуулахтай компанид ажилладаг гэж төсөөлөөрэй. Агуулахад олон хайрцаг бий: зарим нь бэлэн, зарим нь савлагдаж байгаа, зарим нь дутуу. Агуулахын гадна ачааны машин ирэх талбай бий бөгөөд үүнийг ачааны талбай гэнэ. Машин зөвхөн ачааны талбай дээр тавьсан хайрцгуудыг л авч явна. Тиймээс та эхлээд аль хайрцгийг явуулахаа өөрөө сонгож, тэдгээрийг ачааны талбай руу зөөнө. Бэлэн болсон гэж үзсэн үедээ машиныг дуудахад тэр талбай дээрх бүх хайрцгийг ачаад, ачааны баримтад огноо, тайлбартайгаар бүртгэж явна.
Git яг ингэж ажилладаг. Агуулах бол таны ажлын фолдер буюу working directory, тэнд та файлуудаа чөлөөтэй засаж, үүсгэж, устгадаг. Ачааны талбай бол staging area, дараагийн commit-д юу орохыг та тэнд бэлтгэдэг. git add бол хайрцгийг ачааны талбай руу зөөх үйлдэл. Ачааны машин явах нь git commit, тэр талбай дээрх бүх зүйлийг нэг зураг болгон цомогт буюу repository-д бүрмөсөн хадгална. Ачааны баримтын тайлбар бол commit message.
Гэрэл зургийн зүйрлэлээр хэлбэл staging area нь зураг авахын өмнө камерын урд хэнийг зогсоохоо сонгох мөч юм. Та өрөөнд байгаа бүхнийг зурагт оруулах албагүй. Бэлэн болсон зүйлсээ л урд нь байрлуулаад, бусдыг нь дараагийн зураг хүртэл хойш нь үлдээж болно. Яагаад шууд бүгдийг нь хадгалчихгүй гэж? Учир нь сайн цомог утга бүхий зургуудаас бүрддэг. "Нийлбэрийн алдааг зассан" гэсэн зурагт тэр засвар л орох ёстой, хагас бичсэн шинэ функц орох ёсгүй. Staging area танд яг энэ сонголтыг хийх эрх өгдөг.
Алхам 1: Эхлэх байдлаа шалгах
VS Code-д git-dadlaga фолдероо нээж, terminal-д дараах command-ыг бичнэ үү. Terminal-ын хаяг git-dadlaga гэж төгсөж байгаа эсэхийг эхлээд шалгаарай.
Command:
git statusГаралт:
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
data/
tsalin.py
zarlaga.py
nothing added to commit but untracked files present (use "git add" to track)Өмнөх хичээлийн гурван асуултаараа уншъя. Аль branch дээр байна? main. Ямар файл шинэ байна? data/, tsalin.py, zarlaga.py гурвуулаа untracked. Git юу зөвлөж байна? Git add ашиглахыг. Бүх зүйл бидний орхисон байдлаараа байна.
Алхам 2: Нэг файлыг ачааны талбай руу зөөх
Анхны зураг дээрээ зөвхөн zarlaga.py-г оруулъя. Учир нь энэ бол манай гол программ бөгөөд бусад файл хараахан ач холбогдолгүй.
Command:
git add zarlaga.pyГаралт:
Чимээгүй байдал бол амжилт. Git zarlaga.py-г ачааны талбай руу зөөлөө. Гэхдээ үүнийг өөрийн нүдээр шалгая, энэ бол сайн дадал.
Command:
git statusГаралт:
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: zarlaga.py
Untracked files:
(use "git add <file>..." to include in what will be committed)
data/
tsalin.pyОдоо шинэ хэсэг гарч ирлээ: “Changes to be committed:” буюу “commit хийгдэх өөрчлөлтүүд”. Энэ бол ачааны талбай, өөрөөр хэлбэл staging area юм. Тэнд “new file: zarlaga.py” гэж бичигдсэн нь "шинэ файл: zarlaga.py" гэсэн утгатай, ихэнх terminal-д ногоон өнгөөр харагдана. Ногоон өнгө нь "энэ дараагийн зурагт орно" гэсэн дохио. Хаалтан доторх “git rm --cached <file>“ бол файлыг ачааны талбайгаас буцааж агуулах руу авах арга бөгөөд одоохондоо түүнийг ашиглахгүй. Доор нь data/ болон tsalin.py хэвээрээ Untracked хэсэгт улаанаар үлджээ. Энэ гаралт дээр таны ачааны талбайд юу байгаа, агуулахад юу үлдсэн нь тодорхой харагдаж байна.
Алхам 3: Анхны зургаа авах
Одоо ачааны машиныг дуудъя.
Command:
git commit -m "Add expense total script"Гаралт:
[main (root-commit) 3f2a9c1] Add expense total script
1 file changed, 2 insertions(+)
create mode 100644 zarlaga.pyCommand-ыг задалъя. “git commit” нь зураг авах, “-m” нь message буюу тайлбар, хашилт доторх текст нь тайлбар өөрөө. Одоо гаралтыг мөр мөрөөр нь уншъя, учир нь энд маш их мэдээлэл байна.
Эхний мөрийн дөрвөлжин хаалтан доторх “main” нь энэ commit main салаан дээр хийгдсэнийг заана. “(root-commit)” нь "үндэс commit", өөрөөр хэлбэл энэ repository-ийн хамгийн анхны зураг гэсэн утгатай. Энэ бичиг зөвхөн анхны commit дээр нэг удаа гарна. “3f2a9c1” бол энэ commit-ын товчилсон hash буюу давтагдашгүй таних тэмдэг юм. Commit бүр урт, санамсаргүй мэт тоо үсгийн хослолоор тодорхойлогддог бөгөөд Git түүний эхний долоон тэмдэгтийг харуулдаг. Таны hash үүнээс өөр байх нь гарцаагүй, учир нь hash нь таны нэр, цаг хугацаа, агуулгаас тооцоологддог. Дөрвөлжин хаалтны дараах “Add expense total script” нь таны бичсэн тайлбар.
Хоёр дахь мөр “1 file changed, 2 insertions(+)” нь “1 файл өөрчлөгдсөн, 2 мөр нэмэгдсэн” гэсэн утгатай. Энэ нь zarlaga.py доторх хоёр мөр кодыг хэлж байна. Гурав дахь мөр “create mode 100644 zarlaga.py” нь Git энэ файлыг ердийн файл гэж бүртгэснийг илэрхийлнэ. “100644” бол Linux-ийн файлын эрхийн код бөгөөд Windows хэрэглэгчийн хувьд үүнийг тоох шаардлагагүй. Энэ мөр “zarlaga.py цомогт анх удаа орлоо” гэж ойлгоход хангалттай.
Баяр хүргэе, энэ бол таны анхны commit. Цомогт анхны зураг орлоо.
Алхам 4: Зураг авсны дараах байдал
Command:
git statusГаралт:
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
data/
tsalin.py
nothing added to commit but untracked files present (use "git add" to track)Нэг чухал өөрчлөлтийг анзаараарай: “No commits yet” мөр алга болжээ. Цомогт нэг зураг байгаа тул энэ мөр цаашид хэзээ ч гарахгүй. Мөн zarlaga.py жагсаалтаас бүрмөсөн алга болсон. Энэ нь Git түүнийг мартсан гэсэн үг биш, эсрэгээрээ: zarlaga.py одоо хянагдаж байгаа бөгөөд сүүлийн commit-оос хойш өөрчлөгдөөгүй тул түүний тухай хэлэх зүйл алга. git status зөвхөн анхаарал шаардсан зүйлсийг харуулдаг. Өөрчлөгдөөгүй, хянагдаж буй файлууд чимээгүй байна.
Одоо бид нэг файлыг бүтэн мөчлөгөөр нь явууллаа. Үргэлжлүүлэхээс өмнө үүнийг нэгтгэн дүгнэе, учир нь энэ бол Git-ийн хамгийн чухал ойлголтуудын нэг. Хянагдаж буй файл бүр гурван төлөвийн аль нэгэнд байдаг. Нэгдүгээрт, modified буюу өөрчлөгдсөн: та файлыг ажлын фолдерт засварласан ч ачааны талбай руу хараахан зөөгөөгүй. Хоёрдугаарт, staged буюу ачааны талбайд байгаа: та git add хийсэн тул дараагийн commit-д орно. Гуравдугаарт, committed буюу цомогт хадгалагдсан: файлын тэр хувилбар repository-д аюулгүй байна. Эдгээрээс гадна огт хянагдаагүй untracked файлууд бий.
git status эдгээр төлөв бүрт тусдаа гарчигтай. “Changes to be committed” бол staged, ногоон. “Changes not staged for commit” бол modified, улаан. “Untracked files” бол хянагдаагүй, мөн улаан. Харин committed бөгөөд өөрчлөгдөөгүй файлууд огт харагдахгүй. Энэ гарчгуудыг харангуут файл тань хаана байгааг мэдэх нь git status-ийг унших чадварын цөм юм.
Одоо дутуу байгаа ганц төлөвийг, modified-ийг, өөрийн нүдээр харцгаая.
Хянагдаж буй файлыг өөрчлөх
VS Code-д zarlaga.py-г нээгээд доор нь шинэ мөр нэмж хадгална уу. Файл дараах байдалтай болно.
python
zarlaga = [5000, 12000, 3500]
print("Нийт зарлага:", sum(zarlaga))
print("Зарлагын тоо:", len(zarlaga))Command:
git statusГаралт:
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: zarlaga.py
Untracked files:
(use "git add <file>..." to include in what will be committed)
data/
tsalin.py
no changes added to commit (use "git add" and/or "git commit -a")Шинэ гарчиг гарч ирлээ: “Changes not staged for commit:” буюу “commit-д бэлтгэгдээгүй өөрчлөлтүүд”. Доор нь “modified: zarlaga.py” улаанаар бичигдсэн. Git сүүлийн зургаас хойш zarlaga.py өөрчлөгдсөнийг өөрөө анзаарчээ. Хаалтан дотор хоёр зөвлөгөө бий. Эхнийх нь “git add <file>“ ашиглан өөрчлөлтийг commit-д оруулах. Хоёр дахь нь “git restore <file>“ ашиглан өөрчлөлтийг цуцлах, өөрөөр хэлбэл файлыг сүүлийн зургийн байдалд буцаах. Энэ хоёр дахь боломжийг бид 2.5 дугаар хичээлд сурна. Сүүлийн мөр “commit-д юу ч нэмэгдээгүй” гэж сануулж байна. Untracked хэсэг хэвээрээ. Одоо таны дэлгэцэнд нэгэн зэрэг хоёр өөр төлөв харагдаж байна.
Энд нэг чухал санаа бий: Git өөрчлөлтийг анзаарсан ч түүнийг автоматаар зурагт оруулахгүй. Бүлэг 1-ийн зүйрлэлд дурдсанчлан хэзээ зураг авахыг та өөрөө шийднэ. Хэрвээ та энэ өөрчлөлтөө хадгалахыг хүсвэл ачааны талбай руу зөөх хэрэгтэй.
Өөрчлөлтийг commit хийх
Command:
git add zarlaga.py
git commit -m "Show number of expenses"Гаралт:
[main 8b41d07] Show number of expenses
1 file changed, 1 insertion(+)Энэ удаад “(root-commit)” бичиг алга, учир нь энэ анхны commit биш. Шинэ hash 8b41d07 гарсан, таных өөр байна. “1 file changed, 1 insertion(+)” нь яг бидний нэмсэн нэг мөрийг хэлж байна. “create mode” мөр гарсангүй, учир нь файл шинэ биш, зөвхөн өөрчлөгдсөн. Ингээд цомогт хоёр дахь зураг орлоо.
Бүгдийг нэг дор нэмэх: git add .
Одоо tsalin.py болон data/notes.txt хоёр хэвээрээ untracked байна. Тэдгээрийг нэг нэгээр нь нэмж болох ч git add-ийн ард цэг тавибал одоогийн фолдер дахь бүх өөрчлөлт, бүх шинэ файлыг нэг дор ачааны талбай руу зөөнө. Цэг нь Бүлэг 2-ын эхний хичээлд үзсэнчлэн "одоогийн фолдер" гэсэн утгатай.
Command:
git add .
git statusГаралт:
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: data/notes.txt
new file: tsalin.pyХоёр файл хоёулаа “new file” гэж ногоонооор ачааны талбайд орсон байна. Untracked хэсэг бүрмөсөн алга болсон нь бүгд зөөгдсөнийг илтгэнэ. data/ фолдерын оронд түүний доторх data/notes.txt файл нэрээрээ гарч ирснийг анзаараарай. Git файлыг хянаж эхэлмэгц түүнийг бүтэн замаар нь харуулдаг. Мөн хаалтан доторх зөвлөгөө өөрчлөгдсөн: анхны commit-ын өмнө “git rm --cached” гэж байсан бол одоо “git restore --staged” гэж байна. Хоёулаа ачааны талбайгаас буцаах арга бөгөөд анхны commit-оос хойш Git илүү шинэ, ойлгомжтой аргыг санал болгодог. Харин өмнөх хичээлд үүсгэсэн хоосон empty фолдер энд ч харагдахгүй, учир нь Git зөвхөн файлуудыг хянадаг.
Command:
git commit -m "Add salary script and notes"Гаралт:
[main c7e0a52] Add salary script and notes
2 files changed, 2 insertions(+)
create mode 100644 data/notes.txt
create mode 100644 tsalin.pyХоёр файл, хоёр шинэ файл бүртгэгдлээ. Одоо git status бичвэл дараах гаралт гарна.
On branch main
nothing to commit, working tree clean“nothing to commit, working tree clean” нь “commit хийх зүйл алга, ажлын фолдер цэвэр” гэсэн утгатай. Энэ бол Git-ийн хамгийн тайван гаралт юм: таны фолдерт байгаа бүх зүйл цомгийн сүүлийн зурагтай яг адилхан. Энэ мөрийг харах нь ажлаа аюулгүй хадгалсны баталгаа.
git add .-ийн тухай нэг анхааруулга
git add . маш тохиромжтой боловч нэг эрсдэлтэй: фолдерт байгаа бүх зүйлийг ялгалгүй нэмнэ. Жинхэнэ Python төсөлд venv фолдер, нууц түлхүүр бүхий .env файл, pycache зэрэг цомогт хэзээ ч орох ёсгүй зүйлс байдаг. git add . тэднийг ч бас ачааны талбай руу зөөнө. Энэ асуудлыг .gitignore файлаар бүрмөсөн шийддэг бөгөөд бид түүнийг 2.4 дүгээр хичээлд сурна. Тэр хүртэл git add .-ийн дараа commit хийхээсээ өмнө заавал git status-ээр юу нэмэгдсэнийг шалгах дадал гаргаарай. Энэ бол ачааны машин явахаас өмнө талбай дээрх хайрцгуудыг нэг харж гарахтай адил.
-m-гүйгээр commit хийх
Хэрвээ та -m хэсгийг мартаад зүгээр git commit гэж бичвэл юу болохыг мэдэх нь хэрэгтэй. Бүлэг 1-ийн 3 дугаар хичээлд бид VS Code-ыг Git-ийн editor болгосон тул энэ тохиолдолд VS Code-д COMMIT_EDITMSG нэртэй шинэ таб нээгдэнэ. Terminal-д дараах мөр гарна.
hint: Waiting for your editor to close the file...Энэ нь "Таныг editor дахь файлыг хаахыг хүлээж байна" гэсэн утгатай. Нээгдсэн табын эхний мөрөнд commit message-ээ бичиж, Ctrl+S-ээр хадгалаад, табыг хаана уу. Табын доорх # тэмдгээр эхэлсэн мөрүүд нь Git-ийн тайлбар бөгөөд commit message-д орохгүй. Табыг хаасны дараа commit ердийнхөөрөө хийгдэнэ. Хэрвээ та юу ч бичилгүй хаавал Git commit-ыг цуцалж дараах мессеж гаргана.
Aborting commit due to empty commit message."Хоосон commit message-ийн улмаас commit-ыг цуцаллаа" гэсэн утгатай. Юу ч эвдрээгүй, таны файлууд ачааны талбайдаа хэвээр байна. Ихэнх тохиолдолд -m ашиглах нь хурдан, гэхдээ урт, хэд хэдэн мөр тайлбар бичих шаардлагатай үед editor-ийн арга тохиромжтой.
Commit message бол ирээдүйн өөртөө, хамтран ажиллагсаддаа бичиж буй захидал гэж Бүлэг 1-д хэлсэн. Одоо түүнийг хэрхэн сайн бичих талаар ярилцъя. Муу message-ийн жишээ: “fix”, “update”, “asdf”, “changes”, "ажилласан". Эдгээр нь хэдэн сарын дараа юу ч хэлэхгүй, учир нь бүх commit-ууд ямар нэг зүйлийг засдаг, шинэчилдэг. Сайн message-ийн жишээ: “Fix total when expense list is empty”, “Add category filter to expense list”, “Save expenses to JSON file”. Эдгээрийг уншмагц энэ зураг дээр юу болсныг шууд мэднэ.
Сайн message бичих хэд хэдэн энгийн дүрэм бий. Нэгдүгээрт, эхний мөрийг богино байлгаарай, 50 тэмдэгт орчим. Хоёрдугаарт, тушаах хэлбэрээр бичээрэй: “Added” биш “Add”, “Fixed” биш “Fix”. Энэ бол дэлхий нийтийн тогтсон заншил бөгөөд "энэ commit-ыг хэрэглэвэл ... болно" гэсэн өгүүлбэрийг гүйцээж байгаа мэт уншигддаг. Гуравдугаарт, юу өөрчлөгдсөнийг тодорхой хэлээрэй, тэр нь яагаад чухал бол товч нэмээрэй. Мөн нэг commit нэг утга бүхий өөрчлөлт байх нь зүйтэй, тиймээс бид дээрх жишээнд zarlaga.py-ийн өөрчлөлтийг tsalin.py-аас тусад нь commit хийсэн.
Энэ сургалтын жишээнүүдэд commit message-ийг англиар бичиж байгаагийн хоёр шалтгаан бий. Эхнийх нь салбарын заншил: дэлхийн ихэнх төсөл, тэр дундаа Монголын олон баг англиар бичдэг бөгөөд таны GitHub дээрх түүхийг дэлхийн аль ч хүн уншиж чадна. Хоёр дахь нь техникийн: зарим Windows terminal кирилл үсгийг Git-ийн түүхэнд зөв харуулахгүй, утгагүй тэмдэгт болгодог. Энгийн англи хэллэг хангалттай бөгөөд “Add”, “Fix”, “Remove”, “Update” гэх мэт хэдхэн үйл үгээр ихэнх message-ийг бичиж болно. Гэхдээ энэ бол хууль биш, хувийн төсөлдөө монголоор бичихийг хүсвэл Git үүнийг бүрэн зөвшөөрдөг.
Хүсвэл tsalin.py болон zarlaga.py хоёуланд нь нэг нэг мөр нэмж хадгалаад, зөвхөн нэгийг нь git add хийж үзээрэй. Дараа нь git status бичвэл нэг файл ногоон “Changes to be committed” хэсэгт, нөгөө нь улаан “Changes not staged for commit” хэсэгт зэрэгцэн харагдана. Энэ бол staging area-ийн жинхэнэ утга: та өөрчлөлт бүрийг аль зурагт оруулахаа өөрөө сонгож байна. Сонирхвол хоёрыг нь хоёр тусдаа commit болгоод, тус бүрд нь тохирох message бичиж үзээрэй.
Файлын нэрийг буруу бичих.
fatal: pathspec 'zarlga.py' did not match any files“pathspec” нь таны command-д заасан файлын зам юм. Мессеж “zarlga.py гэсэн зам ямар ч файлтай таарсангүй” гэж хэлж байна. Энд zarlaga.py-ийн “a” үсэг дутуу бичигджээ. Нэрээ шалгаж зөв бичээд дахин оролдоно уу. Нэрийг бичихдээ эхний хэдэн үсгийг бичээд Tab товч дарвал PowerShell нэрийг автоматаар гүйцээнэ, энэ нь ийм алдаанаас сэргийлнэ.
Ачааны талбай хоосон байхад commit хийх. Хэрвээ та git add-ийг мартаад шууд git commit -m "..." гэж бичвэл Git commit хийхгүй, харин git status-тэй төстэй мессеж харуулна.
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: zarlaga.py
no changes added to commit (use "git add" and/or "git commit -a")Сүүлийн мөр “commit-д юу ч нэмэгдээгүй” гэж байна. Ачааны талбай хоосон тул машин явах зүйлгүй. Эхлээд git add хийгээд дахин commit хийнэ үү. Хэрвээ огт өөрчлөлт байхгүй бол “nothing to commit, working tree clean” гэсэн мессеж гарна, энэ нь бүх зүйл аль хэдийн хадгалагдсан гэсэн үг.
Git таныг танихгүй байх. Хэрвээ та Бүлэг 1-ийн 3 дугаар хичээлийн Алхам 5-ыг алгассан бол анхны commit дээрээ дараах мессеж гарна.
Author identity unknown
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'Bat@DESKTOP-ABC.(none)')“Author identity unknown” нь "зохиогчийн хэн болох нь тодорхойгүй", “Please tell me who you are” нь "та хэн болохоо хэлнэ үү" гэсэн утгатай. Git зургийн доор хэний нэрийг бичихээ мэдэхгүй байгаа тул commit хийхээс татгалзсан. Мессеж өөрөө шийдлийг зааж байна: дунд хэсэгт байгаа хоёр command-ыг өөрийн нэр, имэйлээр бичнэ үү. Сүүлийн мөрөнд Git таны имэйлийг компьютерийн нэрээс таахыг оролдоод бүтэлгүйтсэнийг харуулж байна. Тохиргоогоо хийсний дараа commit-оо дахин оролдоно уу, ачааны талбай дээрх зүйлс хэвээрээ байгаа.
Мөрийн төгсгөлийн анхааруулга. Заримдаа git add хийхэд дараах мессеж гарч болно.
warning: in the working copy of 'tsalin.py', LF will be replaced by CRLF the next time Git touches itЭнэ бол алдаа биш, “warning” буюу анхааруулга юм. Бүлэг 1-ийн 3 дугаар хичээлд суулгагчийн 10 дугаар дэлгэц дээр тохируулсан мөрийн төгсгөлийн хувиргалтыг санаж байна уу? Энэ мессеж "энэ файлын мөрийн төгсгөлийг Git дараа нь Windows-ийн хэв маяг руу хувиргана" гэж мэдэгдэж байна. Таны add амжилттай болсон бөгөөд энэ анхааруулгыг тоохгүй байж болно.
Git-ийн хадгалалтын мөчлөг хоёр алхамтай: git add файлыг staging area буюу ачааны талбай руу зөөдөг, git commit тэнд байгаа бүх зүйлийг нэг зураг болгон repository-д хадгалдаг. Staging area нь дараагийн зурагт юу орохыг та өөрөө сонгох боломж олгоно. Файл untracked, modified, staged, committed гэсэн төлөвүүдтэй бөгөөд git status тэдгээрийг “Untracked files”, “Changes not staged for commit”, “Changes to be committed” гэсэн гарчгуудаар харуулдаг. Ногоон нь дараагийн зурагт орно, улаан нь орохгүй гэсэн утгатай. git add <файл> нэг файлыг, git add . бүгдийг нэмнэ, сүүлийнх нь хэрэгтэй ч git status-ээр шалгахыг шаарддаг. Commit message богино, тушаах хэлбэртэй, юу өөрчлөгдсөнийг тодорхой хэлсэн байх ёстой. “nothing to commit, working tree clean” нь бүх ажил аюулгүй хадгалагдсан гэсэн утгатай.
Одоо таны цомогт гурван зураг байна. Дараагийн хичээлд бид тэр цомгийг нээж үзнэ: git log-оор зургуудын жагсаалтыг харж, git diff-ээр хоёр хувилбарын хооронд яг юу өөрчлөгдсөнийг мөр мөрөөр нь уншиж сурна.
Бүртгэлтэй болсноор энэ сургалтын бүх хичээлд хандах эрх авна.