Lakona Rondvojaĝo de Gito kaj GitHub

Esperanto • English
Laste ĝisdatigita: la 17-an de marto 2022

Sciu kiel solvi ĉiujn solvitajn problemon.
—Richard P. FEYNMAN

tobias-tullius-XQ1cWY7v2PI-unsplash

Enhavotabelo

Enkonduko

Ĉi tiu lakona gvidilo montros laborfluon per Gito kaj GitHub. Rapida interreta serĉo pri gitaj laborfluoj revenas multspecajn rezultojn. Ĉi tiu artikolo priskribas nur unu el la eblaj manieroj de uzi giton kun gita gastiga servo kiel GitHub.

En ĉi tiu artikolo, la simbolo $ reprezentas la inviton. Por demonstradaj celoj, ni uzos la redaktilon nano . Tamen, kion ajn redaktilon oni liberas uzi.

Bazaferoj

Komenca uzo

Por plifaciligi la aferojn poste, oni devas krei .gitignore-dosieron. La .gitignore-dosiero precizigas la dosierojn kiuj estas ekskluditaj el la deponejo. Multaj el ĉi tiuj estas duumaj dosieroj kaj eraraj mesaĝoj kiuj estis kreitaj dum kompilado.

.gitignore-dosieroj specifas la tipon de projekto. Bona loko por precizigi tion, kion .gitignore devas enhavi estas gitignore.io. Precizigi la tipon de projektoen la kampo, tiam alklaku Generate, tiam kopiu le eligon al la tondejo.

Kreu dosierujon por la projekto, tiam iru al tiu dosierujo:

$ mkdir foobar
$ cd foobar

Redaktu la .gitignore-dosieron en la aktuala dosierujo:

$ nano .gitignore

Tiam, algluu la enhavon de la tondejo. Konservu la ŝanĝojn.

Oni nun povas pravalorizi la gitan deponejon:

$ git init

Komence, aldonu ĉiom da dosieroj en la aktuala dosierujo:

$ git add .

Tiam, la ŝanĝojn enmetu:

$ git commit -m "Pravalorizu novdeponejon"

Sekvontaj uzadoj

Ĉi tiu sekcio priskribas la bazajn komandojn kiuj oni uzos kiam oni jam havas deponejon.

Kreu branĉon kiu tenas la ŝanĝojn:

$ git checkout -b eksperimentaj

Se oni volas aldoni dosieron al la deponejo:

$ git add Blah.java

Kiam oni faris ŝanĝojn al la dosieroj, scenigu ilin:

$ git add -u

Por montri la ŝanĝojn kiujn oni scenigis:

$ git diff

Por enmeti la ŝanĝojn:

$ git commit -m "Ŝanĝojn faru"

Por montri la enmetoprotokolon:

$ git log

Por montri la enmetoprotokolon kun la diferencoj:

$ git log -p

Kiam stabilas la ŝanĝoj, kiujn oni jam testis, ŝaltu al la master-branĉo:

$ git checkout master

Tiam, kunfandu eksperimentaj:

$ git merge eksperimentaj

Post tio, oni povas forviŝi la eksperimentaj-branĉon:

$ git branch -d eksperimentaj

Labori enrete

Ĉi tiu sekcio priskribas kiel labori kun aliaj programistoj. Oni uzos GitHub en ĉi tiu diskuto.

Generi la sekurŝelajn ŝlosilojn

Oni devas esti kapabla por veriĝi ĉe la GitHub-konto, antaŭ ol oni povas puŝi la ŝanĝojn. Por fari tion, oni devas krei la sekurŝelajn ŝlosilojn. Por fari tion, rulu la jenan komandon. Certigu, ke oni disponigos fortan pasfrazon, kiam oni invitiĝis:

$ ssh-keygen -t ed25519

Kreinte la ŝlosilojn, oni devas aldoni la ŝlosilojn al la propra GitHub-konto. Por fari tion, rulu la jenan komandon, tiam kopiu la eligon:

$ cat ~/.ssh/id_ed25519.pub

Iru al github.com/settings/ssh, tiam alklaku Add SSH keyNew SSH key:

Add SSH key

Algluu la ŝlosilon, tiam tradaŭru.

Krei la deponejon

En la paĝo de la deponejoj, krei novan deponejon per klaki New:

New

Daŭru per la invitoj. Kiam oni jam plenigis la postulatajn kampojn, akiros signovicojn de komandojn oni. Anstataŭigu vakelo kaj foobar per la GitHub-uzantnomo kaj la nomo de la deponejo, respektive.

$ git remote add origin git@github.com:vakelo/foobar.git
$ git push -u origin master

Oni invitiĝos por provi la pasfrazon kiun oni eniris supre. La git push komando alŝutos la enhavon de la deponejo al la fora deponejo.

Ĝisdatigi la deponejon

Kiam oni faris plian ŝanĝon al la deponejo, oni povas puŝi la ŝanĝojn per la jena komando:

$ git push origin master

Partopreni

Se oni volas kontribui al projekto, oni devas surlabori kopion de tiu dosiero, tiam oni puŝas la ŝanĝojn al la propra forko:

Unue, forku la projekton. Iru al la projekto, kiun oni volas forki, tiam alklaku Fork:

Fork

Ĉi tio kreas Kopion de la deponejo en la propra GitHub-konto.

Sekve, oni devas kloni tiun forkon al la loka disko. Kopiu la adreson kiu estas lokita en la **SSH clone URL**-kampo:

SSH clone URL

Tiam rulu la jenan komandon, en kiu, memeho estas la uzantnomo:

$ git clone git@github.com:memeho/foobar.git

Sekve, kreu remote kiu nomiĝas upstream kiu spuras la ŝanĝojn de la fonta deponejo:

$ git remote add upstream git@github.com:vakelo/foobar.git

Kiam oni volas fari ŝanĝojn al la kodo, kreu apartan branĉon. Kreu branĉan nomon kiu priskribas la ŝanĝojn kiujn oni volas fari. La nomo povas esti ŝanĝita poste. En ĉi tiu ekzemplo, ni kreos branĉon nomita novopcioj:

$ git checkout -b novopcioj

Nun oni povas fari ŝanĝojn al la dosieroj en ĉi tiu branĉo. Kiam oni jam enmetis la ŝanĝojn, puŝu la ŝanĝojn al via forko:

$ git push origin novopcioj

Se oni volas, ke la fonta deponejo kunfandu la ŝanĝojn , kreu Pull Request per iri al la paĝo de la fonta deponejo, tiam alklaku Pull requests:

Pull Requests

En la sekva paĝo, alklaku New pull request:

New Pull Request

Elektu compare across forks:

Compare Across Forks

Maldekstre, sub la base fork-kampo, elektu vakelo/foobar, kaj en la base-kampo, elektu master.

Dekstre, sub la head fork-kampo, elektu memeho/foobar, kaj en la compare-kampo, elektu novopcioj.

Tiam, alklaku Create pull request:

Create pull request

Tiam, tradaŭru.

Sinkronigi kun upstream

Por sinkronigi la upstream-branĉon kun la loka deponejo, tiru la ŝanĝojn el upstream:

$ git pull upstream master

Tiam puŝu al via deponejo:

$ git push origin master

Tiru ŝanĝojn

Se oni estas la proprulo de la fonta deponejo, kaj oni volas tiri la ŝanĝojn el la kontribuantoj, klaku Pull requests en la paĝo de la deponejo:

Pull requests

tiam, tradaŭru.

Kunfandi kun upstream

Se oni estas la kontribuanto, kaj la ŝanĝoj jam estis tiritaj de la fonta deponejo, sinkronigu la upstream-branĉon:

$ git pull upstream master

En ĉi tiu punkto, oni nun povas forviŝi la novopcioj-branĉon, kiun oni kreis antaŭe:

$ git branch -d novopcioj
$ git push origin -d novopcioj

Finrimarkoj

La laborfluo priskribita en ĉi tiu dokumento estas nur unu el la uzeblaj laborfluoj kiujn oni povas uzi. Ĉi tiu dokumento funkcias kiel enkonduko al la uzantoj kiuj estas komencantoj al Gito kaj GitHub.