Ачааллж байна...
Одоог хүртэл бид Git-ийн бараг бүх ажлыг terminal-аас хийсэн. GitHub-ийн вэб хуудсыг зөвхөн repository үүсгэх, файлуудаа шалгах, лиценз нэмэхэд л ашигласан. Гэхдээ GitHub-ийн вэб интерфэйс бол terminal-д хийж сурсан бүх зүйлийг, түүх, diff, салаа, нэгтгэлийг хүссэн хүнд browser-оор харуулдаг баялаг цонх юм. Ажил олгогч, хамтран ажиллагч, эсвэл таны төслийг сонирхсон хэн ч terminal нээхгүй, харин яг энэ хуудсаар таны ажлыг үзнэ. Тиймээс өөрийн repository GitHub дээр хэрхэн харагддагийг, тэнд юу хаана байдгийг сайн мэдэх нь чухал.
Энэ хичээл бол аялал. Бид шинэ command сурахгүй, харин GitHub-ийн хуудсуудаар нэг нэгээр нь алхаж, тус бүр юу харуулдгийг, terminal-ийн аль command-тай тохирдгийг танилцана. Repository-ийн нүүр хуудас, файл харах хуудас, commit-ын түүх, нэг commit-ын diff, мөр бүрийн түүхийг харуулдаг blame, мөн төслийн хувилбаруудыг тэмдэглэдэг release гэсэн зогсоолууд бий. Аяллын туршид зарлагын бүртгэлийнхээ repository-г browser дээр нээж, хичээлтэй зэрэгцүүлэн өөрийн нүдээр хараарай. GitHub дизайнаа үе үе шинэчилдэг тул товчлуурын байрлал, өнгө бага зэрэг өөр байж болох ч гол хэсгүүд нь ижил байна.
Том музейд анх орохоор хаашаа очихоо мэдэхгүй төөрдөг. Харин үүдэнд байдаг газрын зургийг нэг удаа сайн харвал аль танхимд юу байгааг, хаанаас хаашаа явж болохыг мэддэг болно. Тэр цагаас хойш та музейд итгэлтэйгээр алхаж, сонирхсон үзмэрээ шууд олно.
GitHub-ийн хуудас ч ялгаагүй. Эхлээд олон таб, товч, тоо, icon-ууд төөрөгдүүлэм харагддаг. Энэ хичээл бол тэр музейн газрын зураг: танхим бүрийг нэг удаа үзсэнээр та GitHub-ийн хуудсуудад итгэлтэй алхаж, хэрэгтэй мэдээллээ шууд олдог болно. Мөн энэ газрын зураг таны өөрийн музейн, өөрөөр хэлбэл таны repository-г зочдод хэрхэн харагддагийг ойлгоход тусална.
Browser дээр github.com/<таны-username>/expense-tracker хаягаар repository-гоо нээнэ үү. Энэ бол хамгийн их үзэгддэг хуудас тул түүнийг дээрээс доош нь хэсэгчлэн харъя.
[Зураг: expense-tracker repository-ийн нүүр хуудас бүхэлдээ]
Хамгийн дээд хэсэгт “bat-dorj / expense-tracker” гэх мэт хоёр хэсэгтэй нэр бий. Эхнийх нь эзэмшигч, хоёр дахь нь repository-ийн нэр. Хажууд нь “Public” эсвэл “Private” гэсэн жижиг тэмдэг repository-ийн нээлттэй эсэхийг заана. Түүний доор хэд хэдэн таб эгнэсэн: Code, Issues, Pull requests, Actions, Projects, Security, Insights, Settings. Одоогоор бид Code таб дээр байна. Issues болон Pull requests-ийг Бүлэг 6-д сурна. Settings таб зөвхөн эзэмшигчид харагдана, 4.2 дугаар хичээлд repository устгах аргыг тайлбарлахдаа түүнийг дурдсан.
Табуудын доор файлуудын жагсаалтын дээд мөрөнд хэд хэдэн хэрэгсэл бий. Зүүн талд “main” гэсэн салааны нэртэй жижиг цэс байх бөгөөд түүнийг дарахад repository-ийн бүх салааны жагсаалт гарна. Энэ нь terminal дахь git branch-ийн browser хувилбар. Баруун талд 4.3 дугаар хичээлд clone хийхэд ашигласан ногоон “Code” товч байна.
Файлуудын жагсаалтын хамгийн дээд мөрөнд хамгийн сүүлийн commit-ын мэдээлэл харагдана: зохиогчийн нэр, commit message, товчилсон hash, хэр удаан өмнө хийгдсэн. Тэр мөрийн баруун талд “N Commits” гэсэн тоо бий. Энэ бол таны main салааны нийт commit-ын тоо бөгөөд түүнийг дарахад түүхийн хуудас нээгдэнэ, түүнийг Зогсоол 3-т үзнэ.
Файлуудын жагсаалт өөрөө гурван баганатай. Эхнийх нь файл эсвэл фолдерын нэр. Хоёр дахь нь тухайн файлыг хамгийн сүүлд өөрчилсөн commit-ын message. Гурав дахь нь тэр өөрчлөлт хэр удаан өмнө болсон. Хоёр дахь баганыг анхааралтай хараарай: энд таны commit message-үүд файл бүрийн хажууд байнга харагдаж байна. 2.2 дугаар хичээлд сайн commit message бичих тухай ярьсан нь яг энд үр шимээ өгдөг. “Format amounts with thousands separator” гэсэн message нь зочинд formatting.py юу хийдгийг шууд хэлдэг бол “fix” гэсэн message юу ч хэлэхгүй.
Жагсаалтын доор 5.1 дүгээр хичээлд бичсэн README бүрэн форматтайгаар харагдана. Баруун талд “About” гэсэн хэсэг бий. Тэнд repository-ийн богино тайлбар, лиценз, мөн бусад статистик байрлана. Хэрвээ та 4.2 дугаар хичээлд repository үүсгэхдээ тайлбар бичээгүй бол About хэсгийн хажуудах арааны icon-оор нэмж болно. Энэ нэг өгүүлбэр таны repository-г бусад жагсаалт, хайлтад ч танилцуулна.
[Зураг: About хэсэг ба түүний арааны icon]
Файлуудын жагсаалтаас report.py дээр дарна уу. Файл харах хуудас нээгдэнэ.
[Зураг: report.py-ийн файл харах хуудас]
Кодын хэсэг мөрийн дугаартай, өнгөөр ялгагдсан байна. Мөрийн дугаар маш хэрэгтэй: хэрвээ хэн нэгэнд тодорхой мөрийг заахыг хүсвэл мөрийн дугаар дээр дарна уу. Хуудасны хаяг “#L4” гэх мэт төгсгөлтэй болж, тэр мөр тодорч харагдана. Тэр хаягийг хуваалцахад хүлээн авагч шууд тэр мөр рүү очно. Shift товчийг дарж байгаад өөр мөрийн дугаар дээр дарвал хэд хэдэн мөрийн хүрээг сонгоно.
Кодын дээд талд хэд хэдэн хэрэгсэл бий. “Raw” товч нь файлыг ямар ч форматгүй, цэвэр текстээр харуулна. 5.1 дүгээр хичээлийн "туршаад үзээрэй" хэсэгт README-ийн Markdown-ыг харахад үүнийг ашигласан. Хуулах icon нь файлын бүх агуулгыг clipboard руу хуулна. “History” товч нь зөвхөн энэ файлыг өөрчилсөн commit-уудыг харуулна: энэ бол 2.3 дугаар хичээлийн git log --oneline report.py-ийн browser хувилбар. Мөн “Code” ба “Blame” гэсэн хоёр сонголттой унтраалга бий, Blame-ийг Зогсоол 5-д үзнэ.
GitHub дээр файл хайх хурдан арга бий. Repository-ийн аль ч хуудсан дээр гар дээрх “t” товчийг дарвал файл хайх талбар нээгдэнэ. Файлын нэрийн хэдэн үсгийг бичихэд тохирох файлууд гарч ирнэ. Олон файлтай repository-д энэ нь фолдероор нэг нэгээр нь орохоос хавьгүй хурдан.
Repository-ийн нүүр хуудас руу буцаж, файлуудын жагсаалтын дээрх “N Commits” тоон дээр дарна уу.
[Зураг: commit-ын түүхийн хуудас]
Энэ хуудас git log-ийн browser хувилбар юм. Commit-ууд шинээс хуучин руу, өдрөөр бүлэглэгдэн жагсаалтаар харагдана. Commit бүрийн мөрөнд message, зохиогчийн нэр ба профайлын зураг, хэр удаан өмнө хийгдсэн, мөн баруун талд товчилсон hash байна. Hash-ийн хажуудах хуулах icon нь бүтэн hash-ийг хуулна, 2.3 дугаар хичээлийн git diff <hash1> <hash2>-д ашиглахад тохиромжтой.
Түүхэнд 4.4 дүгээр хичээлийн merge commit-ууд, жишээ нь “Merge branch ‘main’ of https://github.com/...”, бусад commit-уудын дунд харагдана. Хэрвээ та 4.1 дүгээр хичээлд имэйлээ GitHub-ийн noreply хаягаар тохируулахаас өмнө commit хийсэн бол тэдгээрийн зохиогчийн дүрс өөр харагдаж магадгүй. GitHub commit-ыг бүртгэлтэй холбохдоо имэйлийг ашигладаг тул таны бүртгэлд бүртгэлтэй имэйлтэй commit-ууд таны профайлтай, бусад нь зөвхөн нэрээр харагдана.
Хуудасны дээд хэсэгт салаа сонгох цэс байгаа бөгөөд түүгээр өөр салааны түүхийг харж болно. Мөн зохиогч болон огноогоор шүүх хэрэгслүүд байж болно. Олон хүнтэй том төсөлд эдгээр нь тодорхой хүний эсвэл тодорхой хугацааны ажлыг олоход тусалдаг.
Түүхийн жагсаалтаас “Format amounts with thousands separator” commit-ын message дээр дарна уу.
[Зураг: нэг commit-ын diff хуудас]
Энэ хуудас git diff-ийн browser хувилбар бөгөөд 2.3 дугаар хичээлд terminal-д уншиж сурсан бүх зүйл энд яг ижил хүчинтэй. Дээд хэсэгт commit message, зохиогч, огноо, бүтэн hash байна. Мөн энэ commit-ын эцэг commit-ын hash харагдана, merge commit хоёр эцэгтэй тул хоёр hash харуулна, 3.3 дугаар хичээлийн бэлчирийг санаарай. Доор нь өөрчлөгдсөн файл бүр тусдаа хайрцагт харагдана.
Хайрцаг бүрийн доторх мөрүүдийг terminal-ынхтэй адил уншина. Ногоон дэвсгэртэй, “+”-тэй мөрүүд нэмэгдсэн, улаан дэвсгэртэй, “-“-тэй мөрүүд хасагдсан, дэвсгэргүй мөрүүд өөрчлөгдөөгүй context юм. “@@ -1,5 +1,6 @@” гэх мэт hunk-ийн толгой ч мөн бий. Browser-ийн давуу тал нь хоёр зүйл. Нэгдүгээрт, мөрийн доторх яг өөрчлөгдсөн хэсгийг илүү тод өнгөөр онцолдог тул нэг мөрийн аль үг өөрчлөгдсөнийг шууд харна. Хоёрдугаарт, хуудасны дээд хэсэгт “Unified” ба “Split” гэсэн харагдацын сонголт байж болно. Unified нь terminal-тай адил нэг баганаар, Split нь хуучин хувилбарыг зүүн талд, шинийг баруун талд зэрэгцүүлэн харуулна. Том өөрчлөлтийг ойлгоход Split харагдац ихэвчлэн хялбар.
Commit-ын diff хуудсаар хуваалцах нь маш хэрэгтэй. Хэрвээ хэн нэгэнд "би энэ алдааг ингэж зассан" гэж харуулах гэвэл энэ хуудасны хаягийг илгээхэд л хангалттай. Хүлээн авагч terminal нээхгүйгээр яг юу өөрчлөгдсөнийг харна.
Одоо зарлагын бүртгэлийн main.py файл руу буцаж, кодын дээд талын “Code” ба “Blame” унтраалгаас Blame-ийг сонгоно уу.
[Зураг: main.py-ийн blame харагдац]
Blame харагдац кодыг ердийнхөөрөө харуулдаг ч мөр бүрийн зүүн талд нэмэлт мэдээлэл гарч ирнэ: тухайн мөрийг хамгийн сүүлд өөрчилсөн commit-ын message, зохиогч, огноо. Хэд хэдэн дараалсан мөр нэг commit-оос гаралтай бол тэдгээрийг нэг бүлэг болгон харуулна. Жишээ нь main.py-д “from formatting import format_amount” мөрийн хажууд “Format amounts with thousands separator”, "Нийт бичлэг" гэсэн мөрийн хажууд 4.4 дүгээр хичээлийн conflict-ийг шийдсэн merge commit харагдана. Мэдээллийн хажуудах commit message дээр дарвал Зогсоол 4-ийн diff хуудас руу шууд очно.
“Blame” гэдэг үг англиар "буруутгах" гэсэн утгатай тул нэр нь буруу ойлголт төрүүлдэг. Энэ хэрэгслийн жинхэнэ зорилго хэн нэгнийг буруутгах биш, кодын мөр бүрийн гарал үүслийг олох явдал юм. Хэрвээ та кодоос хачин мөр олоод "энэ яагаад ийм байгаа юм бол" гэж гайхвал blame таныг тэр мөрийг нэмсэн commit руу хөтөлнө. Тэр commit-ын message, бусад өөрчлөлтүүд ихэнхдээ шалтгааныг тайлбарладаг. Бүлэг 1-ийн 2 дугаар хичээлд “commit message бол ирээдүйн өөртөө бичсэн захидал” гэж ярьсан. Blame бол тэр захидлыг мөр бүрийн хажууд яг хэрэгтэй үед нь гаргаж ирдэг шуудан зөөгч юм.
Ганцаараа ажилладаг төсөлд blame бүх мөрөнд таны нэрийг харуулах тул энэ нь эхэндээ сонирхолгүй мэт санагдаж болно. Гэхдээ та хэдэн сарын дараа өөрийн кодыг ойлгохыг оролдоход, эсвэл ирээдүйд том багийн кодтой ажиллахад blame хамгийн их ашиглагддаг хэрэгслүүдийн нэг болно. Энэ сургалтын хүрээнд blame-ийг зөвхөн уншиж, ойлгоход хангалттай.
Repository-ийн дээд талын Insights таб руу орж, зүүн талын цэснээс “Network” сонгоно уу.
[Зураг: Insights → Network график]
Энэ график 3.3 дугаар хичээлд terminal-д харсан git log --oneline --graph-ийн browser хувилбар юм. Commit бүр цэг, салаа бүр өнгөт шугам, бэлчир нь шугамууд нийлсэн цэг болж харагдана. Цэг дээр хулганаа аваачвал тухайн commit-ын message гарч ирнэ. Таны зарлагын бүртгэлд 4.4 дүгээр хичээлийн хоёр бэлчир тод харагдах ёстой. Хэрвээ main-ээс өөр салаа GitHub руу push хийгээгүй бол тэдгээр энд харагдахгүй, учир нь график зөвхөн GitHub дээрх зүйлийг харуулна. Insights табын бусад хэсгүүд, жишээ нь Contributors, олон хүнтэй төсөлд хэн хэр их хувь нэмэр оруулсныг харуулдаг.
Аяллын сүүлийн зогсоол бол release буюу хувилбар. Программууд “1.0”, “2.3.1” гэх мэт дугаартай хувилбаруудаар гардгийг та мэднэ. GitHub дээрх release бол таны төслийн тодорхой нэг commit-ыг "энэ бол хувилбар 1.0" гэж албан ёсоор тэмдэглэх арга юм. Commit бүр хадгалагдсан зураг бол release бол цомгийн онцгой хуудсыг жаазлан ханан дээр өлгөхтэй адил: "энэ бол бэлэн, бусдад санал болгож болох хувилбар".
Хувилбарын дугаарыг ихэвчлэн гурван тоогоор бичдэг, жишээ нь 1.2.3. Эхний тоо том өөрчлөлтийг, ялангуяа өмнөх хувилбартай нийцэхгүй өөрчлөлтийг заана. Хоёр дахь тоо шинэ боломж нэмэгдсэнийг, гурав дахь тоо алдааны засварыг заана. Энэ заншлыг semantic versioning буюу утгатай дугаарлалт гэдэг. Анхны бүрэн ажилладаг хувилбарыг ихэвчлэн 1.0.0 гэж нэрлэдэг.
Release бол сонголт бөгөөд жижиг хувийн төсөлд заавал шаардлагагүй. Гэхдээ үүнийг нэг удаа үүсгэж үзэх нь GitHub-ийн энэ хэсгийг ойлгоход тусална. Хүсвэл зарлагын бүртгэлдээ анхны release-ээ үүсгэцгээе. Repository-ийн нүүр хуудсанд баруун талын “Releases” хэсгийг олж, “Create a new release” дарна уу.
[Зураг: Releases хэсэг ба “Create a new release” холбоос]
Нээгдсэн хуудсанд эхлээд tag сонгох талбар бий. Tag бол release-ийн commit-ыг заадаг нэр бөгөөд салаа шиг хавчуурга боловч хэзээ ч хөдөлдөггүй. Талбарт v1.0.0 гэж бичиж, шинэ tag үүсгэх сонголтыг сонгоно уу. Target буюу зорилтот салаа main байгаа эсэхийг шалгаарай. Release title талбарт “Version 1.0.0” гэх мэт нэр бичнэ. Тайлбарын талбарын дээр “Generate release notes” гэсэн товч байвал түүнийг дарахад GitHub өмнөх хувилбараас хойшх өөрчлөлтүүдийн жагсаалтыг автоматаар үүсгэнэ. Эсвэл өөрөө товч тайлбар бичиж болно, жишээ нь “First release: total, count and formatted amounts”. Эцэст нь “Publish release” дарна уу.
[Зураг: шинэ release үүсгэх маягт]
Release-ийн хуудсанд таны тайлбар болон “Source code” гэсэн хоёр татах холбоос, zip ба tar.gz, автоматаар нэмэгдсэн байна. Git ашигладаггүй хүн ч энэ холбоосоор тухайн хувилбарын бүх кодыг нэг файлаар татаж авч болно. Энэ нь release-ийн гол ашиг тусуудын нэг.
GitHub дээр tag үүсгэсэн тул түүнийг local дээрээ авах хэрэгтэй. Энэ бол 5.2 дугаар хичээлийн LICENSE-тэй адил нөхцөл: GitHub дээр шууд өөрчлөлт хийсний дараа pull. Гэрийн компьютерийн terminal-д бичнэ үү.
Command:
git pull
git tagГаралт:
From https://github.com/bat-dorj/expense-tracker
* [new tag] v1.0.0 -> v1.0.0
Already up to date.
v1.0.0Эхний хоёр мөр pull-ийн fetch хэсэг: “[new tag] v1.0.0 -> v1.0.0” нь шинэ tag ирсэнийг заана. “Already up to date” нь шинэ commit байхгүй гэсэн утгатай, учир нь release шинэ commit үүсгэдэггүй, зөвхөн байгаа commit-д нэр өгдөг. Сүүлийн мөр бол git tag command-ын гаралт: таны repository-д байгаа бүх tag-ийн жагсаалт. git log --oneline -1 бичвэл хамгийн сүүлийн commit-ын хажууд “tag: v1.0.0” гэсэн тэмдэг харагдана.
Хүсвэл repository-ийн аль ч хуудсан дээр байхдаа гар дээрх “.” товчийг дарж үзээрэй. GitHub browser дотор VS Code-той төстэй editor нээж, таны repository-г тэнд харуулна. Энэ нь компьютер дээрээ юу ч суулгахгүйгээр кодыг уншиж, хайх, зэрэгцүүлж харахад тохиромжтой. Тэнд файл засаж бас commit хийж болох ч тэгвэл 4.4 дүгээр хичээлийн дүрмийг санаарай: дараа нь local дээрээ pull хийнэ. Editor-оос гарахын тулд browser-ийн буцах товчийг дарахад л хангалттай.
Blame товч олдохгүй байх. Blame нь зөвхөн файл харах хуудсанд байдаг, repository-ийн нүүр хуудсанд байдаггүй. Эхлээд файлын нэр дээр дарж нээгээд, кодын дээд талын “Code” ба “Blame” унтраалгыг хайгаарай. Фолдерт blame байхгүй, зөвхөн файлд байдаг.
Repository бусдад харагдахгүй байх. Хэрвээ та хэн нэгэнд repository-гийнхоо холбоосыг илгээсэн бөгөөд тэр “404” буюу "хуудас олдсонгүй" гэсэн хуудас харж байвал таны repository private байна. GitHub private repository-г эзэмшигчээс бусдад огт байхгүй мэт харуулдаг. Settings табын доод хэсгийн “Danger Zone”-оос “Change visibility”-г ашиглан public болгож болно. Public болгохоос өмнө 5.2 дугаар хичээлийн шалгах жагсаалтаар нууц болон хувийн мэдээлэл байхгүй эсэхийг дахин шалгаарай.
Commit-ууд таны профайлгүй харагдах. Хэрвээ түүхийн хуудсанд зарим commit-ын хажууд таны профайлын зураг биш, саарал дүрс харагдаж байвал тэр commit-уудын имэйл таны GitHub бүртгэлд бүртгэлгүй байна. Settings, Emails хэсэгт тэр имэйлийг нэмж баталгаажуулбал GitHub тэдгээрийг танай бүртгэлтэй холбоно. Эсвэл ирээдүйн commit-уудаа зөв имэйлтэй хийхэд хангалттай, хуучин commit-ууд саарал хэвээр үлдэх нь хор хөнөөлгүй.
Release буруу commit дээр үүссэн байх. Хэрвээ release үүсгэхдээ target буруу салаа сонгосон бол release-ийн хуудсанд “Edit” дарж засаж болно. Хэрвээ бүрмөсөн устгахыг хүсвэл release-ийн хуудсанд устгах сонголт бий. Гэхдээ release устгахад tag заримдаа үлддэг тул tag-уудын жагсаалтаас түүнийг тусад нь устгах хэрэгтэй болж болно. Local дээр ирсэн tag-ийг git tag -d v1.0.0 command-аар устгана.
Network график хоосон эсвэл энгийн харагдах. Хэрвээ таны түүх цөөн commit-тэй, нэг ч бэлчиргүй бол график нэг шулуун шугам байна. Энэ бол хэвийн. Мөн local дээр үүсгэсэн боловч push хийгээгүй салаанууд GitHub-д байхгүй тул графикт харагдахгүй.
GitHub-ийн вэб интерфэйс terminal-д хийсэн ажлыг browser-оор харуулдаг бөгөөд таны repository-г зочид яг энэ интерфэйсээр үздэг. Нүүр хуудсанд эзэмшигч ба нэр, табууд, салааны цэс, commit-ын тоо, файл бүрийн хажууд сүүлийн commit message, README, About хэсэг байдаг. Файл харах хуудсанд мөрийн дугаараар хуваалцах холбоос, Raw, History, Blame хэрэгслүүд бий, “t” товч файл хайдаг. Commit-ын түүхийн хуудас git log-той, нэг commit-ын хуудас git diff-тэй, Insights дахь Network график git log --graph-тай тохирдог. Blame нь мөр бүрийг хамгийн сүүлд өөрчилсөн commit-ыг харуулдаг бөгөөд зорилго нь буруутгах биш, гарал үүслийг олох. Release бол tag-аар тэмдэглэсэн, татаж авах боломжтой хувилбар бөгөөд дугаарыг ихэвчлэн 1.0.0 гэх мэт гурван тоогоор бичдэг. GitHub дээр үүсгэсэн tag-ийг pull-ээр авч, git tag-ээр харна.
Дараагийн хичээлд бид энэ аяллын үр дүнг portfolio-ийн өнцгөөс харна. Ажил олгогч эсвэл reviewer таны GitHub-ийг нээхэд юуг хамгийн түрүүнд хардаг, профайлаа хэрхэн цэгцлэх, онцлох repository-уудаа хэрхэн сонгох талаар, мөн чанар тооноос яагаад илүү чухал болох тухай шударгаар ярина.
Бүртгэлтэй болсноор энэ сургалтын бүх хичээлд хандах эрх авна.