Бүх сургалт ХУГАЦААГҮЙ буюу НАСАН ТУРШИЙН!

Мэргэжлийн програмистын №1 эзэмшсэн байх ёстой зүйл юу вэ? Мэдээж багаар програмчлах.

Багаар програмчлахад гол эзэмшвэл зохих ур чадвар юу вэ? Мэдээж Git. Өнөөдөр, хэрэв та ямар нэг газарт програмистаар ажилд орохоор CV өгвөл, ажил олгогчид нь хамгийн түрүүнд git ашигладаг эсэхийг шалгадаг болохыг танд дуулгамаар байна. Мөн маш олон програмистууд гэрээсээ гадаадын төслүүдэд ажилласнаараа цалинжиж ажиллаж байна. Үнэхээр орчин үед бүгд л тэгж ажилладаг болж байна шүү дээ. Гэхдээ ингэхийн тулд танд ямар чадвар хэрэг болох вэ? Мэдээж та таасан байх ... git. Ялангуяа корона вирусын хөл хорионд дэлхий байгаа үед гэрээсээ, зайнаас, багаараа төсөл дээр өндөр үр бүтээмжтэй ажиллах чадвар бидэнд ус цас шиг чухал болж байгаа билээ.

Open source буюу нээлттэй эхийн програмчлал нь тэр чигээрээ git ашиглан явагддаг. Та github.com сайтаар өдөр бүр л орж хэрэгтэй чухал төслийг хайж олж fork хийн салаалж аван хамтран ажилладаг шүү дээ. Энэ бүхний гол үндэс нь мөн л git юм. github дээр нээлттэй төслүүдийн хажуугаар компаниудын дотоод төслүүд ч мөн байрлаж хөгжиж байдаг. Та гадаад дотоодын ямар ч компанид ажилд орсон git мэдэхгүй бол маш том дутагдал болж хувирдаг.

Хэн нэгэн хүн git-ийг хялбархан ш дээ, сураад байх юу байна гэж байвал та түүнийг нэг бол програмист гүрү (guru) үгүй бол git-ийг бүрэн ашигладаггүй хүн байна гэж шууд ойлгож болно...

Тэгэхээр git гэж юу вэ? Энэ бол товчоор ... эсвэл уртаар : "Файлын өөрчлөлтийн түүхийг хянагч систем" гэж хэлж болно. Вэб, гар утасны апп, банкны систем, онгоцны систем ер нь л бүх төрлийн системийг бүтээхэд git-ийг ашигладаг. Тэр байтугай зохиолчид ном бичихдээ ч ашигладаг гээд л бодчих. Тэд бичсэн зохиолоо хянуулж засуулахаар хэд хэдэн хүнд илгээдэг ба энэ хооронд өөрөө зохиол дээрээ ажилласаар байдаг бөгөөд засагдсан зохиолууд эргэж ирэхэд git ашиглан нийлүүлж нэг сүүлийн хувилбараа агшин зуурт гаргаж авдаг. Програмистын хувьд Git ашиглан жишээ нь ганц команд өгөөд л вэб сайтаа хэдэн хоногийн өмнө ямар байсан түүгээр нь сэргээн гаргаж авах, вэбээ ажиллаж байхад нь хэрэглэгчиддээ нөлөөлөлгүйгээр нэмж програмчлах, програмистууд вэбийн өөр өөр болон нэг хэсэг дээр зэрэг ажиллах зэрэг олон зүйлсийг хийх боломжтой. Дээр нь git нь зөвхөн багаар ажиллахад ч биш, ер нь програмчлалын системийг асар хурдтай засч, өөрчилж, хэрэглэгчддээ асуудал төвөг тарилгүйгээр авч явах боломжийг компаниудад олгодог билээ.

Та програмчлалын системийг хэрхэн бүтээдэг гэж бодож байна? Компаны програмистууд тухайн програмыг эсвэл вэбийг бүтээж байхад git ашиглан хэд хэдэн хувилбар дээр зэрэг ажиллаж байдаг. Тодруулбал яг одоо интернэтэд олон нийтэд ажиллаж байгаа хувилбарыг нь МАСТЕР хувилбар (branch) гэх бөгөөд үүний хажууд TECT хувилбар байдаг. ТЕСТ хувилбар дээр компаны тестлэгчид ажиллана. ТЕСТ хувилбарын хажууд ХӨГЖҮҮЛЭЛТ хувилбар байх ба энэ хувилбар дээр програмистууд ажиллана. ХӨГЖҮҮЛЭЛТ хувилбарын хажуугаар олон тооны шинэ хуудас нэмэх, засварлах, алдаа засах зэрэг ДЭД хувилбарууд програмист бүр дээр байх ба програмистууд эдгээр хувилбараа дуусгангуут ХӨГЖҮҮЛЭЛТ хувилбар руу нэгтгэж байдаг. Өөрөөр хэлбэл програмист ямар нэг юм дээр ажиллах бүртээ ХӨГЖҮҮЛЭЛТ хувилбараас дэд хувилбар үүсгээд тэрэн дээрээ ажилладаг байна. ХӨГЖҮҮЛЭЛТ хувилбарт ямар нэг шинэ боломж бүрэн дуусангуут ТЕСТ хувилбар руу нийлүүлж тестерүүдэд хүлээлгэж өгдөг. Тестерүүд тестлэж дууссаны дараа түүнийг МАСТЕР хувилбар руу нийлүүлж эцсийн хэрэглэгчдэд шинэ функц гарч ирдэг байна. Энэ бол git ашиглан програм хангамжийн системийг багаар бүтээх нэг жишээ юм.

Git-ийг 2004 онд Linus Torvalds зохиосон бөгөөд бид түүнийг алдарт Linux үйлдийн системийг бүтээсэн гэдгээр нь мэднэ. Тухайн үед Linux-ийн хөгжүүлэлтийн шаардлагыг бүрэн хангах систем олдохгүй байснаас болж git-ийг бүтээсэн гэдэг. Гайхалтай хүн шүү, дэлхийг бүрмөсөн өөрчилсөн хоёр ч технологи хийчихсэн байдаг...

Энэ сургалтаар Git-ийг эзэмших явцад ойлгомжгүй байдаг бүх л зүйлийг ойлгомжтой болгож түүнийг өдөр тутмын ажилдаа хэрэглэж хамгийн гүнд нь хүртэл өндөр түвшинд сурах юм.

Тэгвэл энэ сургалт хэнд зориулагдсан бэ? Товчоор та хэн ч байж болно. Хэрэв та дөнгөж эхэлж буй шинэхэн оюутан бол санаа бүү зов, та харин ч яг зөв эхлэх цэгээ олсон байна.

Хэрэв та програмчлалын туршлагатай хүн бол энэ сургалтыг мөн л зөвлөж байна. Учир нь бид энгийн командуудаас нь эхлүүлээд таны магадгүй хэзээ ч харж байгаагүй болох доод түвшний командууд тэдгээрийн хэрэглээ, git файлын системийн бүтцийг хүртэл олж нууцыг нь бүрэн тайлах болно!

[Энэхүү сургалтыг үзэхийн тулд танд линаксын терминал дээр ажиллах хялбар чадвар шаардагдах болно. Тиймээс хэрэв та терминал дээр ажиллаж үзээгүй бол 1234.mn дээрх Linux үйлдлийн системийг эхнээс нь сургалтыг мөн судлахыг зөвлөж байна.]

Ингээд сургалт дээрээ уулзацгаая!
Доорхи видеог тоглуулж эхний видео хичээлийг үзнэ үү

   Хичээлүүд :   

  1. 19:05
    Сургалтын агуулга, энэ сургалтыг судалснаар та ямар чадвартай болох вэ? git ба github гэж юу вэ?
  2. 28:53
    Open source лиценз, GNU, Linux улмаар GIT үүссэн түүх, шалтгаан, түүхэн ач холбогдол
  3. 19:11
    Windows дээр git суулгах, cmder суулгаж зарим нэг linux командыг ажиллуулж үзэх нь
  4. 05:34
    Mac дээр git суулгацгаая! iterm2 terminal суулгана. Brew package manager-тэй танилцах
  5. 12:44
    github дээр эрх үүсгэх, анхныхаа репог үүсгээд өөрийн компьютер дээрээ git ашиглан татаж харах нь
  6. 14:44
    Mac дээр zsh shell болон oh-my-zsh фрэймворкийг суулгаж терминалаа илүү өнгөлөг хүчирхэг болгож сурцгаая!
  7. 19:32
    Bash shell гэж юу вэ? gitbash ийг төрөл бүрээр тохируулах, custom theme холбох нь
  8. 10:01
    git, github ашиглаж үзэцгээе! Github аас javascript тоглоом татаж өөрчилж ажиллуулж өөрийн репо руу хийх нь
  9. 06:23
    Mac үйлдлийн систем дээр хадгалагдсан github эрхээ хэрхэн солих вэ?
  10. 09:17
    Windows дээр өөр өөр github эрхүүдийг хэрхэн сольж ажиллах вэ? Javascript тетрис төслийг татаж ажиллуулах
  11. 09:38
    git тохиргоо гүйцэтгэх, глобал тохиргоо, локал тохиргоо, git repo үүсгэх, github ийн хэрэглэгчийн нэр зөрөх асуудлыг засах
  12. 06:48
    git remote тохиргоо хэрхэн хийх вэ, шинэ git төслийг github төсөлтэй холбох нь
  13. 22:02
    git init, add, commit, push, pull, checkout командууд, git github ажиллагааны дүр зургийг ойлгох нь
  14. 21:41
    git файлуудын амьдарлын цикл (untracked, modifed, staged, unmodified), устгагдсан төслийг сэргээх, git log түүх харах
  15. 05:42
    Stage дотроо буруу файл хийчихсэн бол яах уу? Stage дотор оруулсан файлуудаа хэрхэн буцаан гаргах вэ ?
  16. 05:43
    Ажлын хавтас дотор өөрчилсөн файлууд болон, устгасан файлаа хэрхэн буцаан сэргээх вэ?
  17. 10:11
    github desktop програмыг суулгаж өөрсдийн үүсгэсэн репонуудтайгаа ажиллацгаая!
  18. 21:15
    git commit гэж юу вэ, one way hashing алгоритм, git обьектийг git cat-file команд ашиглан харах нь
  19. 08:36
    checkout ашиглан төслийг цаг хугацаагаар ухран сэргээж ажиллах нь, master хувилбар болон HEAD заагчийн тухай
  20. 07:01
    мастер branch болон head мэдээлэл хаана хадгалагддаг вэ?
  21. 07:47
    Шинээр төслийн хувилбарууд буюу branch үүсгэх, нэрийг солих, устгах
  22. 07:54
    Шинэ төслийн хувилбар дотор коммит хийх, уг коммиттой хувилбарыг бүхэлд нь устгах нь
  23. 10:55
    Branch буюу хувилбаруудыг нэгтгэх merge хийх нь ямар учиртай вэ? Төслийг branch аар хөгжүүлэх нь
  24. 08:23
    Fast forward merge стратеги ямар учиртай вэ, жишээ төсөл дээр хийж үзэцгээе!
  25. 14:48
    Branch буюу хувилбаруудыг гурван алхамт (3 way merging) стратегиар нэгтгэх гэдэг нь ямар учиртай вэ?
  26. 15:57
    3 way merging хийж туршицгаая! Checkout хийхдээ хувилбарыг автоматаар үүсгэх
  27. 15:18
    git хувилбаруудыг sourcetree програм ашиглан зургаар харах, sourcetree ашиглан хувилбаруудыг нэгтгэж үзэцгээе!
  28. 19:07
    Branch буюу хувилбаруудыг нэгтгэх үед үүсэх зөрчлийг судалж, шийдэж сурцгаая!
  29. 16:52
    mac дээр zshell дээр powerlevel10k тохируулж илүү гоё болгож үзэцгээе!
  30. 15:01
    github дээр репо үүсгэж анхны коммитоо хийцгээе! github репогийн ажлын хавтасны эргэн тойронд юу байгааг ойлгоно.
  31. 16:56
    Markdown хэлийг ашиглан Readme.md файлаа төрөл бүрээр засварлаж линк, зураг, эможи, код блок зэргийг нэмцгээе!
  32. 10:22
    github дээр members.md файлыг шинээр нэмж комитлоод өөрсдийнхөө нэр болон чадварыг оруулцгаая!
  33. 06:30
    github дээр branch үүсгэн дотор нь files хавтас pdf болон текст файл нэмж оруулцгаая
  34. 06:31
    github дээрх commands төслөө локал руугаа clone хийж авцгаая!
  35. 09:06
    remote репотой ажиллах git fetch, pull, push командууд цаанаа хэрхэн ажилладаг вэ?
  36. 07:29
    ORIGIN гэж юуг хэлдэг вэ? Хаана байдаг зүйл вэ?
  37. 06:34
    Tracking branch гэж юу вэ? Хэрхэн tracking branch-уудыг харах вэ?
  38. 06:06
    Локал репо дээрээ remote branch-ийг ажиглах tracking branch үүсгэх гурван аргатай танилцая!
  39. 02:30
    Локал болон Remote репонуудыг харьцуулсан мэдээллийг хэрхэн терминал дээрээс үзэх вэ?
  40. 20:02
    FETCH командыг төсөл дээрээ ашиглах, github дээр үүссэн branch-ийг локал руу авах, github дээр өөрчлөгдсөн мэдээллийг локал руугаа merge хийж авах нь
  41. 11:20
    Хоёр өөр remote репо болон, origin заагчийг өөрчлөх, fetch командыг зураг дээр дахин ярилцацгаая!
  42. 13:31
    Linux watch ашиглан git файлын системийг ажиглах, стэйжийг флаш дискээр ойлгох, доторх файлуудыг нь яаж харах вэ?
  43. 07:20
    git prune ашиглан ремүтийг цэвэрлэх, github дээрээс устсан branch-ийг локал дээр дагаж устгах
  44. 05:50
    FETCH_HEAD гэж юу вэ, ямар үүрэгтэй вэ?
  45. 05:43
    PULL командын цаана юу болдог вэ? FETCH_HEAD файлын pull командад гүйцэтгэх үүрэг
  46. 17:06
    PULL командыг бодитоор ажиллуулж үр дүнг шинжилцгээе!
  47. 17:57
    PULL команд өгөх үед нийлүүлэлтийн зөрчил үүсвэл хэрхэн шийдвэрлэдгийг жишээгээр хийж харцгаая!
  48. 12:40
    Локал компьютерээс Github сэрвэр рүү PUSH команд өгөн кодоо илгээцгээе, credential manager, keychain гэж юу вэ?
  49. 07:41
    Сэрвэр рүү PUSH хийх үед REJECTED болж зөрчил үүсэх үед хэрхэн засварлаж PUSH хийдгийг сурцгаая!
  50. 08:32
    Windows компьютер дээр credential manager тохируулж PUSH хийцгээе!
  51. 09:42
    git push командаар хэрхэн бүх tracking branch-уудыг upstream branch руу нь нэг зэрэг push хийлгэх вэ?
  52. 04:42
    Локал дээр шинээр үүсгэсэн branch-ийг хэрхэн github руу push хийж илгээдэг вэ?
  53. 08:59
    git-ийн default editor-ийг VS Code болгох, code командыг PATH руугаа хийх нь
  54. 13:46
    Локалаасаа github дээрх файлуудыг устгах, PULL командыг ашиглалгүй FETCH + MERGE гэж хэрхэн ажилладгийг харцгаая!
  55. 04:57
    Локалаас remote branch-ийг push команд ашиглан устгах, локал болон remote ref буюу заагчуудыг харьцуулж харах команд
  56. 10:23
    Ажлын хавтас дотор өөрчлөгдсөн файлуудыг хэрхэн UNDO хийж өмнөх хувилбараар стэйжнээс сэргээх вэ?
  57. 07:50
    Локал репогийн өөр цаг хугацаан дахь комитоос файлуудыг ажлын хавтас болон стэйж рүүгээ хэрхэн сэргээж авах вэ?
  58. 12:51
    Локал дээр нэгэнт хийсэн комитоо хэрхэн хүчингүй болгох вэ? Хэрхэн цаг хугацааны өөр үеээр репогоор ресет хийж буцах вэ?
  59. 08:03
    reset --hard, --mixed, --soft командуудын ажиллах зарчим, хэрхэн өмнөх түүхээсээ сэргээдэг вэ?
  60. 10:09
    Хэрхэн өмнөх түүхээс сэргээх вэ, git reset --mixed, --soft командуудыг бодитоор ажиллуулж туршицгаая!
  61. 04:46
    Хамгийн сүүлийн комитын текстийг өөрчлөх, мартсан файлаа нэмж хавсаргах, буруу файлыг засварлах нь
  62. 14:24
    github fork дэлгэрэнгүй ойлгоцгооё. Мөн github watch, star нар ямар үүрэгтэй вэ?
  63. 14:45
    Fork хийгдсэн репог хэрхэн Base репотой нь sync хийж ижил авч явах вэ?
  64. 13:04
    Багаар төсөл хөгжүүлэх үндсэн зарчмууд. Closed болон Open Source хөгжүүлэлт
  65. 09:30
    Closed төсөл дээр suragch1234-ийг collaborator-аар урьж төсөлд хөгжүүлэлт хийж үзье!
  66. 18:03
    Pull request гэж юу вэ? Open source болон closed source хөгжүүлэлтийг ойлгоцгооё!
  67. 14:50
    Хэрхэн бранчийг хамгаалалттай болгох вэ? Сурагчдын Pull request-ийг хүлээж авч тайлбарлая!
  68. 16:50
    Хаалттай төсөл дээр хэрхэн програмист ажиллаж pull request хийж байгааг жишээгээр харцгаая!
  69. 12:38
    Нээлттэй эхийн төсөл дээр pull request хийж хөгжүүлэлтэнд хэрхэн оролцдогийг харцгаая!
  70. 18:56
    Fork хийсэн төслөө эх upstream төсөлтэй нь хэрхэн sync хийж ижил болгох вэ?
  71. 12:49
    Төсөл дотроо болон төслөөс гадагш pull request хийхийн ялгаа, хэрхэн хялбар pull request хийх вэ?
  72. 18:56
    Програмын семантик хувилбар гэж юуг хэлдэг вэ? Урьдчилан гаргах хувилбарыг хэрхэн тэмдэглэдэг вэ?
  73. 20:27
    git tag ашиглан програм хангамжийн хувилбаруудыг тэмдэглэх, тагуудтай ажиллах нь
  74. 07:16
    git history бохирдох гэж юуг хэлэх вэ? Хэрхэн цэвэрхэн түүхтэй төсөл авч явах вэ?
  75. 13:50
    Squash merge гэж юуг хэлэх вэ, squash merge ашиглан түүхээ илүү цэвэрхэн болгож ажиллаж үзье
  76. 11:45
    Rebase гэж юу вэ, түүний давуу болон сул тал, хэзээ ашиглавал үр дүнтэй вэ?
  77. 06:58
    Шинэ репо үүсгэж Rebase хийж туршицгаая!
  78. 12:22
    Rebasing хийх явцад үүсэх conflict буюу зөрчлийг шийдвэрлэх, --continue, --abort ашиглах
  79. 03:12
    cherry picking буюу жимс түүх гэж юуг хэлдэг вэ хэрхэн өөр бранчийн жимсийг түүдэг вэ?
  80. 11:56
    github дээрээс Squash Merge хэрхэн хийж олон коммитуудыг нэгтгэх вэ?
  81. 11:11
    Терминал дээрээс interactive rebasing хийж олон коммитуудыг нэгтгэн нэг болгож ажиллацгаая!
  82. 07:37
    gitignore файлыг ашиглан төрөл бүрийн файл хавтсуудыг git-д харагдахгүй болгох нь
  83. 11:13
    git stash хэрэглэн одоо хийж буй ажлаа түр хадгалан дараа нь буцааж сэргээж үргэлжлүүлж ажиллаж сурцгаая!
  84. 08:55
    git revert ашиглан өмнө хийгдсэн коммитуудыг хүчингүй болгож сурцгаая!

Сагсанд хийх

== Сурагчдын сэтгэгдлүүд ==

gaihaltai thx
2021-10-20 08:40:35
Баярлалаа.
2021-09-29 14:43:42
Hello Everyone :)
2021-09-09 18:33:54
Маш хэрэгтэй сургалт байна
2021-08-20 13:27:19
oortoo heregtei medeellee avna gej naidaj bna da
2021-08-19 08:48:13
oh-my-zsh suulgax gexeer
zsh: command not found: $
gesen aldaa zaagaad bx ym ?
2021-08-18 00:25:27
Хямд үнээр насан туршын сургалт авсандаа танай байгууллагын хамт олонд маш их баярлаж байна. Миний бодлоор энэ сайт руугаа ФБ хаягаараа нэвтрэх хэсгийг арай өөр аргаар шийдвэл. Бүртгэлтэй мэйл хаягаар нь баталгаажуулах код явуулаад баталгаажуулдаг ч юм уу.
2021-07-25 18:29:35
ghjk
2021-07-21 18:17:31
Маш хэрэгтэй сургалт байна.
2021-03-07 18:17:54
Үнэхээр хэрэгтэй сургат байна.
2021-02-25 10:06:58
sain surgalt boljee
2021-02-16 16:57:50
Супер. Амарбат багшдаа баярлалаа.
2021-01-29 22:36:05
Маш сонирхолтой, чанартай хичээл болж байна. Баярлалаа
2020-12-29 19:12:52