Ачааллж байна...
Өмнөх хичээлд бид branch-ийг зэрэгцээ ертөнц, салаа зам, хавчуурга гэсэн гурван зүйлээр төсөөлж, яагаад main салааг үргэлж ажилладаг байлгадгийг ойлгосон. Одоо тэр ойлголтыг гар дээрээ мэдрэх цаг ирлээ. Энэ хичээлд бид git branch болон git switch гэсэн хоёр command-аар салаа үүсгэж, жагсааж, хооронд нь шилжинэ. Хамгийн гайхалтай мөч бол салаа солиход VS Code-ийн Explorer дээр файлууд нүдний өмнө алга болж, дахин гарч ирэх үе юм. Анх удаа харахад ид шид мэт санагддаг ч өмнөх хичээлийн хавчуургын зураглалыг санаж байгаа бол яг юу болж байгааг тодорхой ойлгоно.
Энэ хичээлийн хоёр дахь хагас нь branch-ийн тухай хамгийн их төөрөгдүүлдэг асуултад зориулагдсан: commit хийгээгүй ажил салааны хооронд шилжихэд хаашаа явдаг вэ? Энэ асуултын хариултыг мэдсэнээр та "миний ажил алга болчихлоо" гэсэн айдсаас бүрмөсөн ангижирна. Бид git-dadlaga фолдер дээрээ үргэлжлүүлэн ажиллана. Түүний сүүлийн commit нь “Add average expense” байх ёстой.
Өмнөх хичээлд бид салаануудыг тавиур дээр эгнэсэн хавчуургууд гэж төсөөлсөн бөгөөд тэдгээрийн нэг нь гэрэлтэй, тэр бол таны одоо дагаж буй хавчуурга гэсэн. Өнөөдрийн хоёр command яг энэ тавиур дээр ажилладаг. git branch шинэ-нэр нь тавиур дээр шинэ хавчуурга нэмнэ, гэхдээ гэрлийг хөдөлгөхгүй. Та хуучин салаандаа үлдэнэ. git switch нэр нь гэрлийг тэр хавчуурга руу шилжүүлж, таны өрөөг буюу ажлын фолдерыг тэр хавчуургын зааж буй зураг дээрх байдалд оруулна. Эхнийх нь бэлтгэл, хоёр дахь нь аялал. Энэ ялгааг санаж байвал команд бүр юу хийж байгаа нь тодорхой байх болно.
Алхам 1: Одоогийн салаануудыг харах
VS Code-д git-dadlaga фолдероо нээж, terminal-д бичнэ үү.
Command:
git statusГаралт:
On branch main
nothing to commit, working tree cleanmain салаан дээр, ажлын фолдер цэвэр. Салаатай ажиллахын өмнө цэвэр байдлаас эхлэх нь маш сайн дадал бөгөөд яагаад гэдгийг энэ хичээлийн хоёр дахь хагаст ойлгоно. Одоо хавчуургын тавиураа харцгаая.
Command:
git branchГаралт:
* mainНэрээр нь ямар нэг шинэ зүйл үүсгэх мэт санагдах ч зөвхөн git branch гэж бичвэл салаануудын жагсаалтыг харуулдаг. Одоогоор тавиур дээр ганцхан хавчуурга байна: main. Урд талын од тэмдэг нь гэрэл, өөрөөр хэлбэл та одоо энэ салаан дээр байгааг заана. Мөн VS Code-ийн цонхны зүүн доод буланд хараарай. Тэнд салааны icon-той “main” гэсэн бичиг байх бөгөөд энэ нь таны одоогийн салааг үргэлж харуулдаг. Энэ бичиг дээр анхааралтай байх дадал гаргаарай, учир нь хаана байгаагаа мэдэх нь салаатай ажиллахын үндэс юм.
Алхам 2: Шинэ салаа үүсгэх
Өмнөх хичээлд ярьсан ангиллын шүүлтүүрийг бодитоор бүтээе. Эхлээд түүнд зориулсан салаа үүсгэнэ.
Command:
git branch add-categoryГаралт:
Чимээгүй, амжилттай. Тавиурыг дахин харъя.
Command:
git branchГаралт:
add-category
* mainТавиур дээр одоо хоёр хавчуурга байна, цагаан толгойн дарааллаар. Од тэмдэг main дээрээ үлдсэн: шинэ салаа үүсгэсэн ч бид шилжээгүй. Энэ бол зүйрлэлийн "бэлтгэл" хэсэг. Ихэнх terminal-д одоогийн салаа ногоон өнгөөр онцлогдоно.
Алхам 3: Шинэ салаа руу шилжих
Command:
git switch add-categoryГаралт:
Switched to branch 'add-category'“Switched to branch ‘add-category’” нь “add-category салаа руу шилжлээ” гэсэн утгатай. VS Code-ийн зүүн доод буланд ч “add-category” гэж солигдсон байна. Explorer хэсгийг хараарай: юу ч өөрчлөгдөөгүй, бүх файл байрандаа. Учир нь шинэ салаа main-тай яг ижил зураг дээр үүссэн тул тэр зураг дээрх фолдер ч яг адилхан. Үүнийг түүхээс шалгая.
Command:
git log --oneline -2Гаралт:
9e3b5a1 (HEAD -> add-category, main) Add average expense
5d8c3e7 Add .gitignore and example env fileЭхний мөрийн хаалтыг анхааралтай уншъя. “HEAD -> add-category” нь та add-category салааг дагаж байгааг заана. Таслалын дараах “main” нь main хавчуурга ч бас яг энэ зураг дээр байгааг харуулна. Өмнөх хичээлийн дүрслэлээр бол хоёр хавчуурга нэг зураг дээр зэрэгцэн хавчуулагдсан, гэрэл нь add-category дээр асаж байна. Хоёр салаа одоохондоо салаагүй, яг ижил газар зогсож байна. Тэд салах мөч бол бидний дараагийн commit.
Алхам 4: Шинэ салаан дээр ажиллах
VS Code-д angilal.py нэртэй шинэ файл үүсгэж, дараах кодыг бичээд хадгална уу.
python
zarlaga = [
{"dun": 5000, "angilal": "хоол"},
{"dun": 12000, "angilal": "унаа"},
{"dun": 3500, "angilal": "хоол"},
]
def angilalaar_shuuh(jagsaalt, angilal):
return [z for z in jagsaalt if z["angilal"] == angilal]
print(angilalaar_shuuh(zarlaga, "хоол"))Энэ код зарлага бүрийг dictionary хэлбэрээр хадгалж, тодорхой ангиллын зарлагуудыг list comprehension ашиглан шүүнэ. Эдгээрийг та өмнөх сургалтаас мэдэж байгаа. Ажиллаж байгааг шалгая.
Command:
python angilal.pyГаралт:
[{'dun': 5000, 'angilal': 'хоол'}, {'dun': 3500, 'angilal': 'хоол'}]Зөвхөн "хоол" ангиллын хоёр зарлага шүүгдэж гарлаа. Одоо commit хийе.
Command:
git add angilal.py
git commit -m "Add category filter"Гаралт:
[add-category 7b2e1f8] Add category filter
1 file changed, 10 insertions(+)
create mode 100644 angilal.pyДөрвөлжин хаалтан дотор “main” биш “add-category” гэж бичигдсэнийг анзаараарай. Commit таны одоо байгаа салаан дээр хийгдлээ. Түүхийг харъя.
Command:
git log --oneline -3Гаралт:
7b2e1f8 (HEAD -> add-category) Add category filter
9e3b5a1 (main) Add average expense
5d8c3e7 Add .gitignore and example env fileОдоо хоёр хавчуурга салсан байна. add-category шинэ 7b2e1f8 зураг руу урагшилсан, HEAD түүнийг дагасан. main хуучин 9e3b5a1 дээрээ үлдсэн. Өмнөх хичээлийн "шинэ commit зөвхөн одоогийн салааны хавчуургыг урагшлуулдаг" гэсэн дүрэм яг нүдний өмнө биеллээ.
Алхам 5: Гайхалтай мөч: main руу буцах
Одоо энэ хичээлийн хамгийн чухал туршилтыг хийе. VS Code-ийн Explorer хэсгийг харж байгаад terminal-д бичнэ үү.
Command:
git switch mainГаралт:
Switched to branch 'main'Explorer хэсэгт angilal.py алга болсон байна. Хэрвээ тэр файл editor-т нээлттэй байсан бол табын нэр нь зураасаар дарагдаж, файл устсан гэж харуулна. Сандрах хэрэггүй, юу ч устаагүй. Таны өрөө одоо main хавчуургын зааж буй 9e3b5a1 зураг дээрх байдалд орсон бөгөөд тэр зураг авахад angilal.py огт байгаагүй. Тэр файл add-category салааны ертөнцөд амьдардаг. Terminal-аар шалгая.
Command:
lsГаралт:
Directory: C:\Users\Bat\git-dadlaga
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2026-10-08 15:05 data
-a---- 2026-10-08 15:40 41 .env.example
-a---- 2026-10-08 15:40 162 .gitignore
-a---- 2026-10-08 15:12 30 tsalin.py
-a---- 2026-10-08 15:45 229 zarlaga.pyangilal.py жагсаалтад байхгүй. Гэхдээ venv, .env, pycache ч энд харагдахгүй байгааг анзаараарай, учир нь ls анхдагчаар нуугдмал зүйлсийг харуулдаггүй, мөн .gitignore-д байгаа зүйлсэд салаа солих огт хамаагүй. Тэд аль ч салаанд хамаардаггүй, таны фолдерт зүгээр л байсаар байдаг. Таны компьютерийн огноо, хэмжээ өөр харагдах нь хэвийн. Одоо буцаж очъё.
Command:
git switch add-categoryГаралт:
Switched to branch 'add-category'angilal.py Explorer-т буцаж ирлээ, яг бидний бичсэн агуулгатайгаа. Хоёр зэрэгцээ ертөнцийн хооронд аялах гэдэг яг ийм. Нэг command-аар та ажилладаг үндсэн программ руу, нөгөөгөөр шинэ боломжийн ертөнц рүү шилжинэ. Хоёр ертөнц тус бүрдээ бүрэн, бие биедээ саад болохгүй.
Хоёр салаанд ялгаатай байгаа ижил файл
Шинэ файлын оронд аль аль салаанд байдаг файлыг өөрчилбөл юу болох вэ? add-category салаан дээр байгаа эсэхээ VS Code-ийн доод булангаас шалгаад, zarlaga.py-г нээж, хамгийн дээр нь дараах тайлбар мөрийг нэмж хадгална уу.
python
# Ангиллаар шүүх боломжийг angilal.py файлаас харна ууCommand:
git add zarlaga.py
git commit -m "Point to category filter in main script"Гаралт:
[add-category 3c9a6d2] Point to category filter in main script
1 file changed, 1 insertion(+)Одоо main руу шилжээд zarlaga.py-г харна уу.
Command:
git switch mainГаралт:
Switched to branch 'main'VS Code-д zarlaga.py нээлттэй байсан бол түүний агуулга автоматаар шинэчлэгдэж, тайлбар мөр алга болсон байна. Нэг файл хоёр салаанд хоёр өөр хувилбартай амьдарч байна. Git салаа солих бүрт тухайн салааны хувилбарыг фолдерт тавьдаг. Өмнөх хичээлд ярьсан “Git файлуудыг хуулдаггүй, харин салаа солиход тэдгээрийг тухайн зургийн байдалд оруулдаг” гэсэн санаа энэ юм.
Үүсгэх, шилжихийг нэг дор: git switch -c
Ихэнх тохиолдолд салаа үүсгэмэгц шууд түүн рүү шилждэг. Үүнд зориулсан товчлол бий.
Command:
git switch -c monthly-reportГаралт:
Switched to a new branch 'monthly-report'“-c” нь create буюу үүсгэх гэсэн утгатай. “Switched to a new branch” нь "шинэ салаа руу шилжлээ" гэсэн утгатай бөгөөд “new” гэдэг үг энэ салаа дөнгөж үүссэнийг онцолж байна. Өмнөх хоёр алхмыг нэг command хийлээ. Шинэ салаа одоогийн байгаа салаанаас, өөрөөр хэлбэл main-аас салаалсан гэдгийг санаарай. Салаа үргэлж таны одоо байгаа зураг дээрээс үүсдэг тул хаанаас салаалахаа шийдээд, эхлээд тэнд очиж байж үүсгэнэ. Интернэтэд git checkout -b monthly-report гэх хуучин хэллэг ч түгээмэл таарна, энэ нь яг ижил үйлдэл юм.
Хэрэггүй болсон салааг устгах
Сарын тайлангийн санааг одоохондоо хойшлуулъя гэж шийдлээ гэж бодъё. Энэ салаан дээр ямар ч commit хийгээгүй тул устгахад аюулгүй. Гэхдээ одоо байгаа салаагаа устгах боломжгүй, яг л суусан мөчрөө огтлохтой адил. Тиймээс эхлээд main руу буцна.
Command:
git switch main
git branch -d monthly-reportГаралт:
Switched to branch 'main'
Deleted branch monthly-report (was 9e3b5a1).“-d” нь delete буюу устгах гэсэн утгатай. “Deleted branch monthly-report (was 9e3b5a1)” нь “monthly-report салааг устгалаа, тэр 9e3b5a1-ийг зааж байсан” гэсэн утгатай. Зөвхөн хавчуурга устсан, ямар ч зураг устаагүй, учир нь 9e3b5a1 main салаанд хэвээрээ байна. Салаа устгах нь тавиураас хавчуурга авахтай адил, цомгийн хуудсуудад хүрэхгүй.
Одоо тавиураа харъя.
Command:
git branchГаралт:
add-category
* mainБид main дээр, add-category бэлэн хүлээж байна. Энэ салааг дараагийн хичээлд main-д нэгтгэх тул устгахгүй.
Одоо хамгийн чухал асуултдаа хариулъя. Бүх commit хийгдсэн ажил өөрийн салаандаа аюулгүй байдгийг бид харлаа. Харин commit хийгээгүй өөрчлөлт юу болох вэ? Үүнийг ойлгох түлхүүр нь нэг энгийн баримт: commit хийгээгүй өөрчлөлт ямар ч салаанд хамаарахгүй. Тэр зөвхөн таны ажлын фолдерт амьдардаг. Зүйрлэлээр бол тэр нь цомогт ороогүй, ширээн дээр тавьсан ноорог юм. Та хавчуургаа солиход ширээн дээрх ноорог ширээн дээрээ хэвээр үлдэнэ. Энэ баримтаас хоёр өөр нөхцөл гарч ирдэг.
Нөхцөл 1: Өөрчлөлт тантай хамт явна
main дээр байгаа эсэхээ шалгаад tsalin.py-г нээж, доор нь шинэ мөр нэмж хадгална уу.
python
print("Энэ мөр commit хийгдээгүй")tsalin.py бол хоёр салаанд яг ижил агуулгатай файл. Одоо commit хийлгүйгээр салаа солъё.
Command:
git switch add-categoryГаралт:
M tsalin.py
Switched to branch 'add-category'Шинэ мөр гарч ирлээ: “M tsalin.py”. M нь modified буюу өөрчлөгдсөн гэсэн утгатай. Git "таны commit хийгээгүй өөрчлөлт бүхий tsalin.py-г би хамт авчирлаа" гэж мэдэгдэж байна. VS Code-д tsalin.py-г харвал нэмсэн мөр байсаар байна. Хоёр салаанд tsalin.py ижил тул Git таны өөрчлөлтийг юуг ч эвдэлгүйгээр шинэ салаа руу авчирч чадсан.
Энэ нь тохиромжтой мэт санагдаж болох ч нэг эрсдэл бий. Хэрвээ та одоо commit хийвэл энэ өөрчлөлт add-category салаанд орно, хэдийгээр та түүнийг main дээр байхдаа бичсэн ч. Анхлан суралцагчдын түгээмэл алдаа бол нэг салаан дээр ажлаа эхлүүлээд, салаа солиод, өөр салаанд санамсаргүйгээр commit хийх явдал юм. Энэ өөрчлөлтийг одоо хаяцгаая.
Command:
git restore tsalin.pyГаралт:
Нөхцөл 2: Git таныг зогсооно
Одоо add-category дээр байгаа хэвээр zarlaga.py-г нээгээд, тайлбар мөрийн доор өөр нэг тайлбар нэмж хадгална уу.
python
# Дундаж зарлагыг ч энд тооцдогzarlaga.py бол хоёр салаанд ялгаатай файл гэдгийг өмнө харсан. Commit хийлгүйгээр main руу шилжих гэж оролдъё.
Command:
git switch mainГаралт:
error: Your local changes to the following files would be overwritten by checkout:
zarlaga.py
Please commit your changes or stash them before you switch branches.
AbortingЭнэ бол Git таныг хамгаалж буй мессеж тул мөр мөрөөр нь тайван уншъя. Эхний мөр "Таны дараах файлуудад хийсэн өөрчлөлт салаа солих үед дарагдах болно" гэсэн утгатай. “local changes” нь таны компьютер дээрх commit хийгээгүй өөрчлөлт, “overwritten” нь дарж бичигдэх гэсэн үг. “checkout” нь салаа солих үйлдлийн хуучин нэр бөгөөд Git дотооддоо одоо ч энэ үгийг хэрэглэдэг. Хоёр дахь мөрөнд асуудалтай файл zarlaga.py нэрлэгдсэн. Гурав дахь мөр шийдлийг санал болгож байна: "Салаа солихоосоо өмнө өөрчлөлтөө commit хий эсвэл stash хий". Сүүлийн “Aborting” нь "цуцаллаа" гэсэн утгатай: Git шилжилтийг хийсэнгүй, та add-category дээрээ хэвээр байна.
Яагаад Git энд зогссон бэ? main руу шилжихийн тулд Git zarlaga.py-г main-ийн хувилбараар солих ёстой. Гэтэл таны commit хийгээгүй өөрчлөлт тэр файлд байгаа бөгөөд солих юм бол бүрмөсөн алга болно. Git таны ажлыг чимээгүйхэн устгахын оронд зогсоож, танаас шийдвэр хүссэн. Энэ бол Git-ийн хамгийн чухал хамгаалалтуудын нэг: тэр таны commit хийгээгүй ажлыг таны зөвшөөрөлгүйгээр хэзээ ч дарж бичихгүй.
Танд хоёр зам бий. Хэрвээ өөрчлөлт тань үнэ цэнтэй бол commit хийнэ, тэгвэл тэр add-category салаанд аюулгүй үлдэж, та чөлөөтэй шилжинэ. Хэрвээ өөрчлөлт хэрэггүй бол git restore-оор хаяна. Мессежид дурдсан stash бол өөрчлөлтийг commit хийлгүйгээр түр нуух хэрэгсэл бөгөөд хэрэгтэй ч энэ сургалтын хүрээнээс гадуур. Энэ удаад тайлбар хэрэггүй тул хаяад, шилжье.
Command:
git restore zarlaga.py
git switch mainГаралт:
Switched to branch 'main'Ажлын фолдер цэвэр байсан тул шилжилт асуудалгүй боллоо.
Энгийн дүрэм
Энэ хоёр нөхцөлөөс нэг энгийн дүрэм гарч ирж байна: салаа солихын өмнө ажлын фолдероо цэвэр болго. git status “working tree clean” гэж хэлж байх үед шилжвэл ямар ч гэнэтийн зүйл тохиолдохгүй. Хэрвээ цэвэр биш бол өөрчлөлтөө commit хийх үү, хаях уу гэдгийг ухамсартайгаар шийдээд дараа нь шилжинэ. Ингэснээр өөрчлөлт буруу салаанд очих, Git-ийн хамгаалалтын мессеж гарах аль аль нь тохиолдохгүй.
Хүсвэл git log --oneline --all гэж бичээд үзээрэй. “--all” нь зөвхөн одоогийн салааны биш, бүх салааны commit-уудыг харуулна. Та main дээр байгаа ч add-category-ийн хоёр commit жагсаалтад харагдана. Хаалтан доторх хавчуургын нэрсээс аль зураг аль салаанд хамаарахыг уншиж болно. Сонирхвол “--graph” нэмж git log --oneline --all --graph гэж бичээрэй, Git өмнөх хичээлийн салаа замын дүрслэлтэй төстэй зургийг тэмдэгтээр зурна.
Байхгүй салаа руу шилжих гэж оролдох.
fatal: invalid reference: add-categroy“invalid reference” нь "буруу лавлагаа", өөрөөр хэлбэл ийм нэртэй хавчуурга олдсонгүй гэсэн утгатай. Энд салааны нэр үсгийн алдаатай бичигджээ. git branch-ээр жинхэнэ нэрсийг харж, зөв бичнэ үү. Салааны нэрийг ч файлын нэр шиг Tab товчоор гүйцээж болно.
Байгаа нэрээр салаа үүсгэх.
fatal: a branch named 'add-category' already exists“add-category нэртэй салаа аль хэдийн байна” гэсэн утгатай. Хэрвээ та тэр салаа руу шилжихийг хүссэн бол git switch add-category гэж “-c”-гүйгээр бичнэ үү. Хэрвээ шинэ салаа хэрэгтэй бол өөр нэр сонгоно уу.
Одоо байгаа салаагаа устгах гэж оролдох.
error: cannot delete branch 'add-category' used by worktree at 'C:/Users/Bat/git-dadlaga'"Энэ фолдерт ашиглагдаж буй add-category салааг устгах боломжгүй" гэсэн утгатай. “worktree” нь таны ажлын фолдер. Эхлээд өөр салаа руу, жишээ нь main руу шилжээд дараа нь устгана уу. Git-ийн хувилбараас хамаараад энэ мессежийн үг хэллэг бага зэрэг өөр байж болох ч утга нь ижил.
Нэгтгээгүй салааг устгах гэж оролдох. Хэрвээ та main дээр байхдаа git branch -d add-category гэж бичвэл Git зогсооно.
error: the branch 'add-category' is not fully merged
hint: If you are sure you want to delete it, run 'git branch -D add-category'
hint: Disable this message with "git config advice.forceDeleteBranch false"“add-category салаа бүрэн нэгтгэгдээгүй” гэсэн утгатай. Энэ салаан дээр main-д ороогүй commit-ууд байгаа тул устгавал тэдгээр нь ямар ч хавчуургагүй, хайхад хэцүү болно. “hint” мөрүүд нь зөвлөгөө: "Хэрвээ итгэлтэй байгаа бол том D үсэгтэй command ашигла". Энэ удаад add-category-г дараагийн хичээлд нэгтгэх тул ХЭЗЭЭ Ч бүү устгаарай. Ерөнхийдөө том “-D”-ийг зөвхөн тухайн салааны ажил бүрмөсөн хэрэггүй гэдэгт итгэлтэй үедээ ашиглана.
Файл "устсан" мэт санагдах. Салаа солиход VS Code-д нээлттэй байсан файл зураасаар дарагдсан нэртэй болбол файл тухайн салаанд байхгүй гэсэн үг. Тэр файл устаагүй, өөр салаандаа байна. git log --oneline --all-аар аль салаанд байгааг олж, тэр салаа руу шилжвэл буцаж гарч ирнэ. Ийм үед хамгийн түрүүнд VS Code-ийн зүүн доод булангаас одоо аль салаан дээр байгаагаа шалгаарай.
git branch салаануудын жагсаалтыг харуулдаг, од тэмдэг нь одоогийн салааг заана. git branch нэр шинэ салаа үүсгэдэг ч шилжүүлдэггүй, git switch нэр тухайн салаа руу шилжүүлдэг, git switch -c нэр хоёуланг нь нэг дор хийдэг. Шинэ салаа үргэлж таны одоо байгаа зураг дээрээс салаалдаг. Commit одоогийн салаанд хийгддэг бөгөөд зөвхөн тэр салааны хавчуургыг урагшлуулна. Салаа солиход Git фолдерын файлуудыг тухайн салааны сүүлийн зургийн байдалд оруулдаг тул файлууд гарч ирэх, алга болох нь хэвийн. git branch -d нэр хэрэггүй салааг устгадаг ч зөвхөн хавчуургыг, зургуудыг биш. Commit хийгээгүй өөрчлөлт ямар ч салаанд хамаардаггүй: аюулгүй бол тантай хамт явдаг, дарагдах эрсдэлтэй бол Git шилжилтийг зогсоодог. Хамгийн энгийн дүрэм: салаа солихын өмнө git status “working tree clean” гэж хэлж байх ёстой. VS Code-ийн зүүн доод булан таны одоогийн салааг үргэлж харуулдаг.
Дараагийн хичээлд add-category салааны ажлыг main-д нэгтгэнэ. Эхлээд ямар ч бэрхшээлгүй, цэвэр нэгтгэл хийнэ. Дараа нь хоёр салаа нэг мөрийг өөр өөрөөр өөрчилсөн нөхцөлийг зориуд бий болгож, Git-ийн conflict тэмдэглэгээг мөр мөрөөр нь уншиж, тайван шийдвэрлэнэ. Энэ бол энэ сургалтын айдсыг арилгах хамгийн чухал хичээл юм.
Бүртгэлтэй болсноор энэ сургалтын бүх хичээлд хандах эрх авна.