Njia ya kujifunza

Jinsi ya kujifunza Git: mpango wa masomo, mafunzo ya mazoezi, nyaraka na mazoezi

Imesasishwa: · Skillaria.Top

Kujifunza Git kunafaa kupangwa katika hatua nne: mzunguko wa msingi (init, add, commit, log), matawi na kuunganisha, seva za mbali na timu, kisha kughairi makosa na zana za hali ya juu. Kufikia kiwango cha kazi kwa uhakika kwa kawaida huchukua wiki 2 hadi 4 za mazoezi ya mara kwa mara kwenye repo yako mwenyewe.

Git inajifunzwa kwa mikono, si kwa kusoma tu. Ili ufanye kazi kwa uhakika kwenye timu, inatosha kujua takriban amri ishirini na kuelewa mawazo matatu: commit ni picha ya mradi, tawi ni kielekezi kwa commit, na repo ya mbali ni nakala nyingine ya historia. Chini ni mpango wa kujifunza Git kwa hatua, pamoja na mazoezi, nyenzo za bure na vigezo vya kujua kwamba hatua imekamilika.

Mpango unamlenga mwanzaji ambaye tayari anaweza kutumia terminal angalau kwa cd na ls. Usipoweza, tumia jioni moja kujifunza misingi ya mstari wa amri: bila hiyo, kujifunza Git kunakuwa ngumu zaidi.

Kwa nini ujifunze Git kwa mpangilio

Watu wengi wanatumia miaka kwa amri tano walizonakili kutoka kwa maelekezo ya mtu mwingine, na wanaogopa wanapokutana na mgongano wa kwanza au «detached HEAD». Sababu karibu kila mara ni moja: hakuna mfano wa kiakili — mtu hajui amri inabadilisha nini kwenye historia na kwenye faili.

Kujifunza kwa mpangilio kunalipa haraka. Huogopi tena majaribio kwa sababu unajua jinsi ya kurudi nyuma; unatatua migongano kwa utulivu; unaweka historia nadhifu ambayo wakaguzi na waajiri wanaiona. Git inakaguliwa kwenye mahojiano karibu katika kila taaluma ya IT, kuanzia frontend hadi DevOps na uchambuzi wa data.

Hatua ya 1. Misingi: repo, index, commit

Lengo la hatua hii ni kuelewa mzunguko wa msingi na maeneo matatu ya Git: folda ya kazi, index na repo. Inachukua siku 2 hadi 4, saa moja kwa siku.

  • Usakinishaji na usanidi wa awali: git config --global user.name, user.email, tawi chaguo-msingi main.
  • Kuunda repo: git init.
  • Mzunguko wa git status → git add → git commit; kuchagua vipande kwa git add -p.
  • Kuangalia historia: git log --oneline, git diff, git diff --staged, git show.
  • Faili .gitignore: kipi kisiingie kwenye repo.

Zoezi. Unda repo kwa maelezo yako yoyote au hati ndogo. Fanya commit 15 hadi 20, kila moja ikiwa mabadiliko moja ya kimantiki yenye ujumbe ulio wazi. Baada ya kila amri endesha git status na jieleze mwenyewe kilichobadilika.

Hatua imekamilika ikiwa unaweza bila msaada kueleza tofauti kati ya matokeo ya git diff na git diff --staged, na kucommit sehemu tu ya faili zilizobadilika.

Hatua ya 2. Matawi na kuunganisha

Matawi ni moyo wa Git na chanzo kikuu cha woga kwa wanaoanza. Hapa jambo la muhimu si kukariri amri, bali kujifunza kuwazia grafu ya commit. Hatua hii inachukua karibu wiki moja.

  • Kuunda na kubadili: git branch, git switch, git switch -c.
  • HEAD ni nini, na hali ya detached HEAD.
  • Kuunganisha: git merge, fast-forward na merge commit, bendera --no-ff.
  • Migongano: alama <<<<<<< na >>>>>>>, git merge --abort.
  • Kuona grafu: git log --oneline --graph --all.

Zoezi. Unda matawi mawili kutoka main na ubadilishe mstari uleule wa faili moja katika kila tawi. Yaunganishe moja baada ya jingine, pata mgongano na uutatue. Rudia hadi mchakato uwe wa kuchosha.

Katika hatua hii msaada bora ni mafunzo shirikishi ya Git — tazama hapa chini. Yanaonyesha grafu baada ya kila amri na kujenga hisia haraka.

Hatua ya 3. Seva za mbali na kazi ya timu

Lengo ni kujifunza kufanya kazi na seva kama wanavyofanya kwenye timu. Utahitaji akaunti kwenye GitHub, GitLab au huduma nyingine yoyote ya Git. Muda: wiki moja hivi.

  • Kuunganisha na kuclone: git remote add, git clone, kuingia kwa ufunguo wa SSH.
  • Kusawazisha: git push, git push -u, git fetch, git pull na tofauti yake.
  • Matawi ya ufuatiliaji wa mbali kama origin/main.
  • Forks, matawi ya feature na pull request zenye ukaguzi wa msimbo.
  • Michakato ya timu: GitHub Flow, Git Flow, trunk-based development.

Zoezi. Fanya kazi na repo moja kutoka «kompyuta» mbili: iclone kwenye folda mbili tofauti. Fanya commit kwenye moja, sukuma, chukua kwenye nyingine. Tengeneza hali ambayo push inakataliwa kwa sababu seva imetangulia, na uelewe kwa nini.

git clone git@github.com:you/sandbox.git copy-a
git clone git@github.com:you/sandbox.git copy-b
cd copy-a && echo "kutoka A" >> notes.txt && git commit -am "Marekebisho kutoka A" && git push
cd ../copy-b && echo "kutoka B" >> notes.txt && git commit -am "Marekebisho kutoka B"
git push          # rejected: seva imetangulia
git pull          # tunapata marekebisho ya A, tunatatua mgongano kwenye notes.txt
git push

Mfano huu mfupi unaiga hali ya kawaida zaidi kwenye timu. Chambua matokeo ya kila amri: kwa nini push imekataliwa, nini kimeingia kwenye origin/main baada ya fetch, na merge commit imetoka wapi. Kisha rudia kwa git pull --rebase na linganisha grafu kwa git log --oneline --graph --all.

Bora zaidi: tafuta mwenzako mkafanye pamoja mradi mdogo kupitia pull request. Hivyo utahisi ukaguzi, migongano na makubaliano kuhusu matawi.

Hatua ya 4. Kughairi makosa

Hatua hii inageuza Git kutoka chanzo cha wasiwasi kuwa wavu wa usalama. Siku 3 hadi 5.

  • git restore na git restore --staged — kughairi kwenye faili na index.
  • git commit --amend — kurekebisha commit ya mwisho.
  • git reset katika hali za --soft, --mixed, --hard.
  • git revert — kughairi salama commit iliyochapishwa.
  • git reflog — kurejesha commit «zilizopotea».

Zoezi. Fanya commit kadhaa, endesha git reset --hard HEAD~3 kisha zirejeshe kupitia reflog. Ghairi commit kwenye tawi «la pamoja» kwa revert na uone jinsi inavyoonekana kwenye historia.

Hatua ya 5. Zana za hali ya juu

Hizi zinajifunza unapozihitaji, lakini ni vizuri kujua kuwa zipo mapema.

ZanaWakati inahitajika
git rebase na git rebase -iHistoria ya mstari mmoja, kusafisha commit kabla ya pull request
git stashKubadili haraka bila kucommit kazi isiyokamilika
git cherry-pickKuhamisha commit moja, kwa mfano hotfix
git tagKuweka alama kwenye matoleo ya releases
git bisectKutafuta commit iliyovunja msimbo
git worktree, git submoduleNakala kadhaa za kazi; repo zilizo ndani ya repo

Mafunzo shirikishi ya Git: wapi kufanya mazoezi

Mafunzo shirikishi ni mazuri kwa sababu yanakupa sanduku la mchanga salama na yanaonyesha matokeo papo hapo. Chaguo kadhaa za bure:

  • Learn Git Branching (learngitbranching.js.org) — mafunzo bora zaidi kuhusu matawi. Ngazi zenye kazi, grafu ya commit yenye uhuishaji, na kiolesura cha Kirusi. Inafunika commit, branch, merge, rebase, cherry-pick, interactive rebase na kazi na remote.
  • Oh My Git! — mchezo wa bure wenye chanzo wazi, ambapo amri za Git zinawakilishwa kwa kadi, na chini ya pazia kuna Git halisi.
  • Repo yako ya majaribio — mafunzo yasiyothaminiwa sana. Unda folda git-sandbox na uvunje kila kitu humo: hakuna kitu cha kupoteza.

Mafunzo haya ni mazuri kwa kuelewa grafu, lakini hayabadilishi mradi halisi: hayana faili halisi, kihariri, migongano ya msimbo wala IDE. Yatumie kama nyongeza.

Nyaraka za Git na vitabu

Nyaraka rasmi za Git ziko git-scm.com. Hapo pia kuna kitabu cha bure Pro Git cha Scott Chacon na Ben Straub, pamoja na tafsiri ya Kirusi. Ni kitabu bora zaidi cha Git: sura tatu za kwanza (misingi, matawi) ni lazima, sura ya «Git ndani» ni kwa wale wanaotaka kuelewa modeli ya data kikamilifu.

Msaada wa ndani unapatikana kila wakati: git help <amri> inafungua mwongozo kamili, git <amri> -h inaonyesha orodha fupi ya bendera. Nyaraka za Git zimeandikwa kikavu lakini kwa usahihi; zoea kuzikagua badala ya jibu la kwanza la utafutaji.

git help rebase        # mwongozo kamili
git switch -h          # muhtasari wa bendera
git help -g            # orodha ya miongozo ya dhana (gitworkflows, gittutorial…)

Miongozo gittutorial na giteveryday pia ni muhimu — inakuja na Git kwa kawaida na inafunguliwa kupitia git help.

Peke yako au kwenye kozi

Kujifunza Git peke yako kunawezekana kabisa: kitabu, mafunzo na sanduku la mchanga vinatoa kila kitu kinachohitajika. Tatizo ni jingine — bila muundo ni rahisi kukwama kwenye nadharia au, kinyume chake, kukusanya amri bila kuelewa, na bila maoni hakuna atakayekuambia kwamba unaweka historia kwa fujo.

Kozi ya Git inafaa ukitaka kupita njia haraka na kwa mpangilio: kutoka commit ya kwanza hadi pull request kwenye repo halisi, na kazi kwenye kila hatua. Unapochagua kozi, usiangalie urefu wake, bali sehemu ya mazoezi: je, kuna kazi zenye migongano, kughairi makosa, kazi ya timu na mradi wa mwisho?

Inachukua muda gani kujifunza Git

KiwangoUnachowezaMuda kwa saa 1 kwa siku
MsingiCommit, historia, .gitignoresiku 3 hadi 5
KaziniMatawi, migongano, push/pull, pull requestwiki 2 hadi 3
KujiaminiKughairi makosa, rebase, reflog, mtiririko wa timumiezi 1 hadi 2 kwa mazoezi halisi

Nambari hizi ni makadirio: kinachoamua ni uthabiti. Saa moja kila siku inafanya kazi zaidi ya marathon ya wikendi mara moja kwa mwezi.

Makosa ya kawaida wakati wa kujifunza Git

  • Kujifunza kwa GUI pekee. Wateja wa picha ni rahisi, lakini wanaficha modeli. Kwanza elewa mstari wa amri, kisha chagua zana unayopenda.
  • Kukariri bendera. Kinachopaswa kukaririwa ni mawazo; bendera ziko daima kwenye -h.
  • Kuogopa kuvunja. Hadi utakapofanya reset --hard na kurejesha, hujui kwamba Git inakulinda.
  • Kuruka repo za mbali. Git ya ndani bila push, pull na pull request ni nusu ya ujuzi.
  • Commit za «fix» na «update». Ni rahisi kujenga tabia ya kuandika ujumbe wenye maana tangu mwanzo.

Mradi wa mwisho wa kuimarisha

Njia bora ya kujithibitisha ni kuiga kazi ya timu. Unda repo, linda tawi main dhidi ya push ya moja kwa moja, mwalike mwenzako au fanya kazi kwa akaunti mbili. Kila kazi iwe tawi lake la feature na pull request yenye ukaguzi; angalau mara moja sababisha mgongano, angalau mara moja ghairi commit mbaya kwa revert, na weka alama ya release kwa tag.

Baada ya mradi kama huu, Git inaacha kuwa seti ya miujiza. Unaona grafu, unaelewa matokeo ya amri, na uko tayari kwa maswali ya mahojiano.

Hitimisho

Kujifunza Git kwa ufanisi kunaenda kwa mpangilio: mzunguko wa msingi, matawi, kazi na seva, kughairi makosa, kisha zana za hali ya juu. Mafunzo shirikishi yanakusaidia kuona grafu, Pro Git na nyaraka rasmi zinatoa kina, na sanduku lako la mchanga pamoja na mradi wa timu vinageuza maarifa kuwa ujuzi. Ni kwa njia hii — kutoka git init hadi pull request kwenye mradi wa mwisho — ndivyo kozi ya Git kwenye Skillaria imejengwa.

Maswali ya mara kwa mara

Je, inawezekana kujifunza Git kwa siku moja?

Kwa siku moja unaweza kujifunza mzunguko wa msingi: init, add, commit, log na push. Kufanya kazi kwa uhakika na matawi, migongano na kughairi makosa kunahitaji wiki kadhaa za mazoezi.

Je, unahitaji kujua kuprogramu ili kujifunza Git?

Hapana. Git inafanya kazi na faili yoyote ya maandishi, kwa hiyo unaweza kujifunza kwa maelezo yako au nyaraka. Unahitaji tu ujuzi wa msingi wa terminal.

Je, kuna nyaraka za Git kwa Kiswahili?

Mwongozo rasmi wa amri uko git-scm.com kwa Kiingereza. Kitabu Pro Git kinapatikana huko pia katika tafsiri kadhaa, na Learn Git Branching inasaidia lugha nyingi.

Nijifunze nini baada ya Git?

Hatua inayofuata ya kimantiki ni CI/CD (GitHub Actions, GitLab CI), ukaguzi wa msimbo na michakato ya timu. Kwa DevOps — miundombinu kama msimbo, ambayo pia inahifadhiwa kwenye Git.

Jifunze mada hii kwa video

Mada hii inafundishwa kwa kina pamoja na mazoezi katika kozi “Git kutoka mwanzo hadi msanidi programu anayejiweza”.

Nenda kwenye kozi