GitHub Desktop: jinsi ya kupakua, kusakinisha na kufanya kazi na Git bila mstari wa amri
GitHub Desktop ni programu ya bure ya GitHub kwa Windows na macOS inayofanya amri kuu za Git kwa vitufe: clone, commit, push, pull, matawi, merge na kutatua migongano. Unaipakua kwenye desktop.github.com, unaingia kwenye akaunti yako ya GitHub, kisha unaclone repository.
GitHub Desktop ni nini
GitHub Desktop ni programu ya bure yenye chanzo wazi (open source) ambayo GitHub inatoa kwa Windows na macOS. Inaonyesha faili zilizobadilishwa, historia ya commit na matawi kwenye dirisha moja, na inatekeleza amri kuu za Git kwa kubonyeza vitufe. Ndani yake kuna nakala ya Git iliyojengwa ndani, kwa hiyo si lazima kusakinisha Git tofauti ili kuitumia.
Ukiulizwa kwa ufupi «git desktop ni nini»: ni kiolesura cha picha cha Git kilichoundwa kwa ajili ya GitHub. Kinaweza kuclone repository zako kwa bonyeza moja na kuunda pull request na kuonyesha hali ya ukaguzi, lakini pia kinafanya kazi na repository nyingine yoyote ya mbali kupitia HTTPS, kwa mfano GitLab au seva yako mwenyewe.
GitHub Desktop inafaa wanaoanza, wabunifu, waandishi wa nyaraka za kiufundi na yeyote anayehitaji mzunguko ulio wazi wa «nimebadilisha — nimecommit — nimetuma». Wasanidi wenye uzoefu wanaitumia kuona diff kwa macho na kuchagua mistari ya kucommit, huku kazi ngumu wakizifanya kwenye terminal.
Jinsi ya kupakua GitHub Desktop
Anwani rasmi ya kupakua ni desktop.github.com. Tovuti yenyewe inatambua mfumo wako na inakupa kisakinishi cha Windows au faili ya zip ya macOS. Pakua programu hiyo kutoka hapo tu au kutoka ukurasa wa releases wa repository ya desktop/desktop kwenye GitHub: toleo la «github desktop bure» kutoka tovuti za watu wengine linaweza kuwa na chochote ndani yake.
Hakuna toleo rasmi la Linux. Kwa Linux kuna fork inayoungwa mkono na jamii (repository ya shiftkey/desktop) yenye vifurushi vya .deb, .rpm na AppImage, lakini hiyo ni toleo lisilo rasmi. Kwenye Linux ni rahisi zaidi kufanya kazi kwenye terminal au kwenye Git iliyojengwa ndani ya kihariri chako.
Usakinishaji kwenye Windows
- Endesha faili uliyopakua, GitHubDesktopSetup.
- Kisakinishi hakiulizi chochote: programu inasakinishwa kwenye wasifu wa mtumiaji wa sasa na inafunguka mara moja.
- Haihitaji haki za msimamizi, na programu yenyewe inapakua masasisho.
Kwa kompyuta za shirika kuna kisakinishi cha MSI tofauti; kitafute kwenye nyaraka za GitHub Desktop.
Usakinishaji kwenye macOS
- Fungua faili ya zip uliyopakua.
- Buruta GitHub Desktop hadi kwenye folda ya «Applications» (Programu).
- Fungua programu na uthibitishe kwamba unataka kuendesha programu uliyopakua kutoka mtandaoni.
Kuna matoleo ya processor za Intel na Apple Silicon; tovuti kwa kawaida inakupa unayohitaji. Unaweza pia kuisakinisha kupitia Homebrew:
brew install --cask github
Kuingia kwenye akaunti na mipangilio ya kwanza
Unapoifungua kwa mara ya kwanza, GitHub Desktop inakuomba uingie kwenye GitHub.com. Bonyeza kitufe cha kuingia: kivinjari kitafunguka, na hapo unathibitisha kwamba programu inaruhusiwa kufikia akaunti yako. Nenosiri lako halihitaji kuingizwa ndani ya programu yenyewe, na uthibitishaji wa mambo mawili unafanyika kwenye kivinjari kama kawaida. Kwa seva ya kampuni ya GitHub Enterprise kuna njia tofauti ya kuingia.
Kisha programu inakuomba usanidi Git: jina na barua pepe vitakavyoingia kwenye kila commit. Hizi ni user.name na user.email zile zile zinazowekwa kwa amri ya git config --global, kwa hiyo kama Git ilikuwa imesanidiwa tayari, taarifa zitajazwa zenyewe. Ili commit zako ziunganishwe na wasifu wako kwenye GitHub, weka barua pepe iliyoongezwa kwenye akaunti, au anwani ya huduma ya aina ya ID+jina@users.noreply.github.com.
Baadaye mipangilio hii inabadilishwa kwenye Settings: kwenye Windows ni File → Options, kwenye macOS ni menyu ya GitHub Desktop → Settings. Hapo pia unachagua kihariri cha nje (kwa mfano VS Code) na terminal zitakazofunguka kutoka kwenye programu, pamoja na mandhari ya muonekano.
Kuclone repository
Clone maana yake ni kupakua nakala ya repository ya mbali pamoja na historia yake yote. Kwenye GitHub Desktop, nenda kwenye File → Clone repository. Dirisha lina vichupo vitatu: repository zako kwenye GitHub.com, repository za GitHub Enterprise, na kichupo cha URL ambapo unaweza kubandika anwani yoyote, ikiwemo ya GitLab.
- Chagua repository kutoka orodhani au bandika URL.
- Taja folda ya kwenye kompyuta yako (Local path).
- Bonyeza Clone na usubiri upakuaji umalize.
Amri ya git clone inafanya kitu hicho hicho. Kwenye ukurasa wa repository kwenye GitHub, kwenye menyu ya kitufe cha Code kuna chaguo la Open with GitHub Desktop: litafungua programu ikiwa tayari imejaza anwani. Ukiclone repository ya mtu mwingine bila ruhusa ya kuandika, programu itakuomba ufanye fork wakati wa jaribio lako la kwanza la kutuma mabadiliko.
Folda iliyopo tayari yenye mradi wa Git unaiongeza kupitia File → Add local repository, na repository mpya unaiunda kupitia File → New repository: unaweza kuchagua kiolezo cha .gitignore, leseni, na kuunda README papo hapo.
Jinsi ya kufanya commit kwenye GitHub Desktop
Upande wa kushoto, kwenye kichupo cha Changes, kuna orodha ya faili zote zilizobadilishwa; upande wa kulia kuna diff ya faili uliyochagua: mistari iliyofutwa ni nyekundu, mistari iliyoongezwa ni kijani. Kisanduku cha kuteua karibu na faili kinaamua kama faili hiyo itaingia kwenye commit. Hii ni sawa na staging area na amri ya git add.
- Ondoa alama kwenye faili ambazo hutaki kuzicommit.
- Ukihitaji, bonyeza mistari mahususi kwenye diff ili kuitoa: hivi ndivyo commit ya sehemu inavyofanyika, kama
git add -p. - Chini, andika maelezo mafupi kwenye sehemu ya Summary na, ukipenda, maelezo marefu kwenye Description.
- Bonyeza kitufe cha Commit to <jina la tawi>.
Commit inaundwa kwenye kompyuta yako tu, bado haijaenda kwenye seva. Kupitia git desktop commit ni rahisi kuunda commit ndogo zenye maana: unaona hasa kinachoingia kwenye kila moja. Ukikosea katika commit, mara tu baada yake kitufe cha Undo kinaonekana chini; kinafuta commit ya mwisho na kurudisha mabadiliko kwenye folda ya kazi, mradi commit haijatumwa bado.
Faili ambazo hazipaswi kuingia kwenye repository unaweza kuziondoa kupitia menyu ya kubofya-kulia kwenye faili: chaguo la kupuuza litaongeza faili hiyo kwenye .gitignore. Ili kufuta mabadiliko ambayo hayajacommitiwa, menyu hiyo hiyo ina Discard changes: mabadiliko yanafutwa (huenda kwenye Recycle Bin ya Windows au Trash ya macOS), lakini ichukulie kama kitendo kisichoweza kurudishwa.
Push, pull na fetch: kusawazisha na seva
Kitufe kikuu kwenye upau wa juu kinabadilisha jina kulingana na hali. Hapa ndipo git desktop push na git desktop pull zinapofanyika kwa bonyeza moja.
| Maandishi kwenye kitufe | Kinachotokea | Amri ya Git |
|---|---|---|
| Publish repository | repository ya kwenye kompyuta bado haipo kwenye GitHub: iunde na uitume | kuunda remote + git push -u |
| Publish branch | tawi lipo kwenye kompyuta yako tu | git push -u origin tawi |
| Fetch origin | kuangalia kama kuna commit mpya kwenye seva | git fetch |
| Pull origin | kuna commit mpya kwenye seva, zichukue | git pull |
| Push origin | kuna commit za kwenye kompyuta yako, zitume | git push |
Karibu na maandishi ya kitufe kinaonyeshwa idadi ya commit yenye mishale ya juu na chini: ni ngapi za kutuma na ngapi za kupokea. Programu inafanya fetch chinichini mara kwa mara, kwa hiyo kitufe cha Pull kinaonekana chenyewe wakati wenzako wametuma kitu.
Ikiwa tawi limetofautiana na seva, yaani kuna commit zako na pia commit mpya kwenye seva, push itakataliwa. Kwanza fanya Pull origin: Git itaunganisha mabadiliko, na kama yanagongana, litatokea tatizo la migongano. Force push (kutuma kwa kuandika upya historia) programu inapendekeza tu baada ya shughuli zinazobadilisha commit ambazo tayari zimetumwa, kwa mfano baada ya rebase.
Matawi: kuunda, kubadilisha, checkout
Matawi yanasimamiwa kupitia menyu kunjuzi ya Current branch kwenye upau wa juu. Ndani yake kuna orodha ya matawi ya kompyuta na ya mbali, sehemu ya kutafuta, na kitufe cha New branch. Kuchagua tawi kwenye orodha ni git desktop checkout: programu inahamisha folda ya kazi kwenye tawi hilo. Tawi la mbali ambalo bado halipo kwenye kompyuta yako unaweza kulichagua tu, na tawi la ndani lenye ufuatiliaji litaundwa.
Tawi jipya linaundwa kutoka la sasa au kutoka tawi kuu, na programu itakuuliza ikiwa kuna chaguo. Baada ya kuundwa, lipo kwako tu, kwa hiyo kitufe cha juu kitabadilika kuwa Publish branch. Kubadilisha jina au kufuta tawi kunafanyika kwenye menyu ya Branch au kwenye menyu ya kubofya-kulia tawi kwenye orodha; wakati wa kufuta unaweza kuchagua kwamba tawi lifutwe pia kwenye seva.
Kazi kwenye tawi ikiwa tayari, kwenye menyu ya Branch kuna chaguo la Create pull request: kivinjari kitafunguka kwenye ukurasa wa kuunda pull request kwenye GitHub. Ukaguzi na kuunganisha vinafanyika tayari kwenye tovuti.
Merge na rebase kwenye GitHub Desktop
Ili kuunganisha tawi jingine kwenye la sasa, chagua kwenye menyu ya Current branch kipengee Choose a branch to merge into <tawi> (kipo pia kwenye menyu ya Branch). Programu inakuonyesha mapema ni commit ngapi zitaunganishwa na kama kutakuwa na migongano. Hivi ndivyo git desktop merge inavyofanya kazi: ni git merge ya kawaida.
Kwenye menyu hiyo hiyo kuna Squash and merge, ambayo inaunganisha commit zote za tawi kuwa moja, na Rebase current branch, ambayo ni git desktop rebase: inahamisha commit zako juu ya tawi lililochaguliwa. Baada ya rebase ya tawi ambalo tayari limetumwa, historia kwenye seva na kwenye kompyuta yako inatofautiana, na kitufe cha Push kinabadilika kuwa Force push origin. Fanya hivyo tu kwenye tawi lako mwenyewe, ambalo hakuna mwingine anayelifanyia kazi.
Kwenye kichupo cha History unaweza kuburuta commit: kwenye tawi jingine (hii ni cherry-pick), juu ya nyingine (squash), au kubadilisha mpangilio. Rebase ya mwingiliano yenye vitendo vyote haipo; kwa hiyo unahitaji git rebase -i kwenye terminal.
Migongano ya kuunganisha
Ikiwa mistari ileile imebadilishwa kwenye matawi yote mawili, wakati wa merge, pull au rebase litatokea dirisha lenye orodha ya faili zenye migongano. Kwa kila faili unaweza kuifungua kwenye kihariri cha nje au kuchagua toleo moja zima: lako au lile linaloingia.
Kwenye kihariri, migongano inaonekana kwa kawaida:
<<<<<<< HEAD
const limit = 20;
=======
const limit = 50;
>>>>>>> feature/pagination
Acha toleo unalotaka, futa alama, kisha hifadhi faili. Alama zikipotea kwenye faili zote, GitHub Desktop inaziweka kama zilizotatuliwa na kuwasha kitufe cha kuendelea na kuunganisha: kitaunda merge commit. Ikiwa kitu kimeenda vibaya, unaweza kusitisha kuunganisha kwa kitufe cha kughairi kwenye dirisha hilohilo: ni sawa na git merge --abort.
Git stash kwenye GitHub Desktop
Kwenye dirisha kuu hakuna kitufe cha «stash», lakini utaratibu upo. Unapohamia tawi jingine ukiwa na mabadiliko ambayo hayajacommitiwa, programu inakuuliza ufanye nini nayo: kuiacha kwenye tawi la sasa au kuihamishia kwenye jipya. Chaguo la «kuacha» linaficha mabadiliko kwenye stash, na hivyo ndivyo git stash inavyofanya kazi kwenye GitHub Desktop.
Unaweza kuficha mabadiliko kwa mkono kupitia menyu ya kubofya-kulia kwenye orodha ya mabadiliko (kipengele cha Stash all changes). Ukirudi kwenye tawi hilo, chini ya kichupo cha Changes utaona mstari wa Stashed changes: hapo unaweza kuona faili zilizofichwa na kuzirejesha (Restore) au kuzifuta.
Kikwazo: GitHub Desktop inahifadhi stash moja tu kwa kila tawi. Ikiwa unahitaji rekodi kadhaa, tumia terminal, kwa mfano git stash pop ukichagua rekodi maalum au git stash apply stash@{1}; programu inaweza kuifungua terminal kwenye folda sahihi kupitia menyu ya Repository.
Git LFS kwenye GitHub Desktop
Git LFS huhifadhi faili kubwa za binary (video, PSD, modeli) kwenye seva tofauti, na kwenye repository zinabaki tu pointer. GitHub Desktop inaunga mkono LFS: wakati wa kuclone au kufungua repository inayotumia LFS, inapendekeza kuanzisha Git LFS, kisha inapakua na kutuma faili kubwa kiotomatiki.
Lakini kuchagua faili zipi zifuatiliwe kupitia LFS hakuwezekani kwenye kiolesura. Hili linafanywa mara moja kwenye terminal, kisha git lfs kwenye GitHub Desktop inafanya kazi bila kuonekana:
git lfs install
git lfs track "*.psd"
git add .gitattributes
git commit -m "Fuatilia faili za PSD kwa Git LFS"
Zingatia mipaka: akaunti za bure za GitHub zina kikomo cha hifadhi na trafiki ya LFS; mipaka ya sasa iko kwenye mipangilio ya malipo ya akaunti yako.
Reset, revert na historia
Kichupo cha History kinaonyesha commit za tawi la sasa na mabadiliko ya kila moja. Kupitia menyu ya kubofya-kulia kwenye commit kuna chaguo zifuatazo:
- Revert changes in commit — inaunda commit mpya inayotengua ile uliyochagua. Ni salama hata kwa commit ambazo tayari zimetumwa.
- Create branch from commit na Create tag — tawi au tagi kutoka sehemu yoyote ya historia.
- Amend commit — kwa commit ya mwisho tu: kurekebisha ujumbe au kuongeza faili.
- Reset to commit — kwenye matoleo mapya ya programu: inarudisha tawi kwenye commit uliyochagua huku mabadiliko yakibaki kwenye folda ya kazi, kama
git reset --mixed.
Hakuna chaguo la git desktop reset linalofuta mabadiliko kabisa (git reset --hard) kwenye kiolesura: hilo limefanywa makusudi ili mwanzilishi asipoteze kazi yake. Ukilihitaji, tumia terminal, na commit zilizopotea uzitafute kwa git reflog.
Wakati ni bora kutumia mstari wa amri
GitHub Desktop inashughulikia mzunguko wa kila siku wa kazi, lakini mambo mengi hayapatikani ndani yake au ni magumu:
- rebase ya mwingiliano yenye vitendo vyote,
git bisect,git reflog,git worktree; - rekodi kadhaa za stash, submodules, usanidi wa kina wa remote;
- kufanya kazi kwenye seva kupitia SSH na kuendesha mambo kwenye skripti na CI;
- Linux, ambako hakuna toleo rasmi.
Zaidi ya hayo, katika mahojiano ya kazi wanauliza amri hasa, na kuelewa kile fetch, merge na rebase vinavyofanya kunasaidia hata ukitumia kiolesura cha picha. Mbinu nzuri ni kujua mstari wa amri kwa uhakika na kutumia programu pale inapookoa muda: kuangalia diff, commit za sehemu, na kutatua migongano. Kutoka GitHub Desktop, terminal inafunguka kupitia menyu ya Repository ikiwa tayari kwenye folda ya mradi.
Kwa ufupi
GitHub Desktop ni njia rahisi na ya bure ya kufanya kazi na Git kwenye Windows na macOS: pakua kutoka desktop.github.com, ingia kwenye akaunti, clone repository, na commit, push, pull, matawi na migongano vinafanyika kwa vitufe. Kwa stash, LFS na reset uwezo wake ni mdogo, na shughuli ngumu zinabaki kwenye terminal. Repository za mbali, push, pull na ushirikiano wa pamoja kupitia pull request vimefafanuliwa kwa mifano halisi kwenye kozi ya Git.
Maswali ya mara kwa mara
Je, GitHub Desktop ni bure?
Ndiyo, programu nzima ni ya bure na ina chanzo wazi; unalipa tu ikiwa unataka mpango wa malipo wa GitHub yenyewe.
Je, ni lazima kusakinisha Git tofauti kwa ajili ya GitHub Desktop?
Hapana, programu ina nakala yake ya Git ndani. Lakini ukitaka kufanya kazi pia kwenye terminal, sakinisha Git kwa mfumo wako kando.
Je, GitHub Desktop inaweza kutumika na GitLab au Bitbucket?
Ndiyo, unaweza kuclone repository kwa anwani ya HTTPS kwenye kichupo cha URL. Ujumuishaji wa pull request na kuingia kwa akaunti unafanya kazi kwa GitHub pekee.
Je, GitHub Desktop ina lugha ya Kiswahili?
Hakuna kiolesura rasmi cha Kiswahili; programu iko kwa Kiingereza. Majina ya vitufe ni mafupi na yanalingana na amri za Git, kwa hiyo ni rahisi kuelewa.
Kwa nini GitHub Desktop haioni mabadiliko kwenye faili?
Mara nyingi faili imeangukia kwenye sheria ya <code>.gitignore</code> au umefungua folda nyingine ya repository. Angalia njia kwenye menyu ya Current repository na yaliyomo kwenye .gitignore.
Mada hii inafundishwa kwa kina pamoja na mazoezi katika kozi “Git kutoka mwanzo hadi msanidi programu anayejiweza”.
- GitHub na Hifadhi za Mbali: Msimbo Wako Hewani
- Kazi ya Timu: Forks, Matawi ya Sifa na Maombi ya Kuvuta