Kehitystiimeissä on melko yleistä, että tiimi välttää (tai jopa estää) puskemisen suoraan päähaaraan. Ajatuksena on, että ennen kuin yksi kehittäjä voi lisätä koodinsa päähaaraan, tiimi tarkistaa koodin ja joko hyväksyy tai kieltää sen yhdistämisen päähaaraan. Tarkoituksena on pitää päähaara puhtaana bugeista.
Kun kehittäjät alkavat lisämään uusia ominaisuuksia, he luovat uuden haaran (branch). Sitten he puskevat GitHubiin kyseisen haaran melko usein (esimerkiksi kerran päivässä). Ja kun ominaisuus on valmis, se halutaan yhdistää päähaaraan(main). Mutta sen sijaan, että he yhdistäisivät sen itse, he luovat Pull requestin GitHubissa. Sitten tiimi tarkistaa koodin ja päättää, hyväksyykö se pyynnön vai ei. Jos he hyväksyvät, joku heistä yhdistää haaran päähaaraan. Tämän jälkeen jokaisen jäsenen tulee vetää uusin main-versio paikalliseen repoonsa ja sitten yhdistää main-versio haaraan, jonka kanssa he työskentelevät tällä hetkellä.
Kehittäjä voi myös päättää, että hylkää koko branchin. Tällöin hän ei tee Pull requestia.
Jos haluat tehdä Pull requestin GitHubissa, sinun tulee valita valikosta Pull request, jolloin saat seuraavan näkymänKun joku muu ryhmässäsi kirjautuu sisään GitHubiin, hän näkee Pull requestin. Ja sitten heidän pitäisi tehdä tämä
Oletetaan, että työskentelet beaver
-nimisen haaran kanssa ja kuulet, että main on päivitetty.
Silloin sinun pitäisi tehdä näin:
Oletetaan, että beaver branchissä tiedostossa test.php rivi 3 on tällainen:
echo 'Tervetuloa Jim';Ja vedit uuden main version, jossa rivi 3 on tällainen:
echo "Tervetuloa Ann";Joten kun suoritat komennon
git merge main
,
saat virheilmoituksen:
Auto-merging test.php CONFLICT (content): Merge conflict in test.php Automatic merge failed; fix conflicts and then commit the result.Ja kun avaat tiedoston test.php, näet seuraavan:
<<<<<<< HEAD echo 'Welcome Jim'; in beaver ======= echo 'Welcome Ann'; in login_system >>>>>>> mainNyt sinun on muokattava tiedostoa. Ja päätät muokata sen seuaavanlaiseksi:
echo 'Welcome Ann and Jim';Eli siis edellinen korvaa kaiken mitä oli näiden rivien välissä
<<<<<<< HEAD >>>>>>> mainSitten suoritat seuraavat komennot:
Yksi tiimin jäsen alustaa projektin ja kaikki jäsenet kloonaavat repon. Ja sitten jokainen luo oman branchin.
Kun alat tehdä sovellukseen uutta "ominaisuutta", luo uusi branch.
Alla olevassa kaavioissa on esitetty työskentelyn vaiheet