Najprej moramo razumeti kako poteka sinhronizacija. V tej shemi so trije različni repository-ji: moj javni repository na GitHub-u github.com/Roshanjossey/first-contributions/, tvoja različica tega repository-ja na GitHub-u github.com/Your-Name/first-contributions/ in lokalni repository na tvojem računalniku. Ta način delovanja je značilen za odprto-kodne projekte in se imenuje Triangle Workflow.
Da obdržimo tvoja dva repository-ja sinhronizirana z mojim javnim repository-jem, moramo najprej pridobiti javni repository in ga združiti s tvojim lokalnim repository-jem ( fetch and merge ). Naslednji korak bo, da pošljemo tvoj lokalni repository v tvojo GitHub različico. Kot smo že prej videli, lahko samo iz GitHub različice zahtevamo "pull request". Zato je tvoja GitHub različica zadnji repository, ki se ga posodobi na zadnjo verzijo.
No pa poglejmo kako se to naredi:
Najprej moraš biti v svoji glavni veji ( master branch ). Da izveš na kateri veji si trenutno, izvedi ta ukaz in poglej prvo vrstico odgovora:
git statusČe nisi na glavni veji uporabi:
git checkout masterPotem dodaš moj javni repository svojemu git-u z ukazom add upstream remote-url:
git remote add upstream https://github.com/Roshanjossey/first-contributionsNa ta način povemo git-u da obstaja še ena verzija tega projekta na podanem naslovu in da jo imenujemo upstream. Sedaj, ko ima tvoj git ime in naslov, lahko s tega naslova pridobimo zadnjo verzijo javnega repository-ja z ukazom fetch:
git fetch upstreamPravkar ste pridobili zadnjo verzijo moje različice (upstream remote). Sedaj pa je potrebno še združiti javni repository v tvojo glavno vejo (master branch).
git rebase upstream/masterTukaj združuješ javni repository s svojo glavno vejo. Glavna veja na tvojem računalniku je sedaj posodobljena. Na koncu pošlješ še svojo glavno vejo v tvojo različico (fork) na GitHub-u in tudi ta bo posodobljena z zadnjimi spremembami:
git push origin masterTukaj lahko vidiš da pošiljaš v oddaljeni repository imenovan origin.
Na tej točki, so vsi tvoji repository-ji posodobljeni. Dobro opravljeno! To stori vsakič, ko te tvoj GitHub repository opozori, da ni sinhroniziran z ostalimi repository-ji.
