U ovom poglavlju će biti opisano račvanje projekata, kao i sam GitHub proces rada. Osim osnovnih zahteva za povlačenje, biće prikazani i neki napredniji zahtevi za povlačenje i reference.
Kada korisnik želi da da doprinos postojećem projektu za koji nema dozvolu da ga menja, uvek ima opciju „račvanja” (eng. fork). GitHub će napraviti kopiju projekta koja se dodeljuje korisniku i projekat je onda moguće menjati. Gledano sa ove vremenske distance, termin račvanja je imao negativno značenje jer je opisivao situaciju kada neko projekat otvorenog koda iskoristi stvarajući konkurentski projekat. Na platformi GitHub račvanje podrazumeva isti projekat, ali u korisničkom prostoru imena, što korisniku dozvoljava da javno pravi promene projekta, pa to u suštini predstavlja još otvoreniji i transparentniji doprinos.
Na ovaj način kreatori projekata ne moraju da brinu o dodavanju korisnika kao saradnika da bi im dali dozvolu za menjanje. Korisnici mogu da račvaju projekat, postavljaju na račvu i daju svoj doprinos promenama nazad originalnom repozitorijumu tako što će kreirati zahtev za povlačenjem (eng. Pull Request). Da bi korisnik račvao projekat, treba da poseti stranicu projekta klikom na dugme račvanja. Nakon nekoliko sekundi, biće prebačen na stranicu svog novog projekta, sa svojom sopstvenom kopijom koda, koju dalje može da menja.
GitHub je dizajniran prema određenim procesima za saradnju, ali je pre svega fokusiran na zahteve za povlačenjem. Ovaj način rada funkcioniše bilo da je u pitanju saradnja sa dobro uvezanim timom na jednom deljenom repozitorijumu, ili sa globalno distribuiranom kompanijom ili mrežom nepoznatih korisnika koji daju doprinos projektu preko brojnih račvi. Bazira se na tematskim granama.
U opštem slučaju radi na sledeći način.
Na jednom jednostavnom primeru se može prikazati promena projekta otvorenog koda koji je hostovan na GitHub servisu, koristeći navedeni način rada. Takođe, sve ovo se može uraditi i pomoću zvaničnog GitHub CLI alata. Alat se može skinuti za bilo koji operativni sistem.
Primer. Korisnik traži ko ̂d koji hoće da izvršava na svom Arduino programabilnom mikrokontroleru i našao je odličan fajl programa na servisu GitHub na adresi https://github.com/schacon/blink, kao što je prikazano na slici 18.
Jedini problem je što je brzina treptanja suviše velika. Korisnik smatra da bi bilo bolje da se kod svake promene stanja čeka tri sekunde umesto jedne. Zato korisnik hoće da unapredi program i pošalje ga nazad na projekat kao predloženu promenu.
Da bi korisnik dobio svoju kopiju projekta, najpre se klikne na dugme račvanja koje je ranije opisano. Ovde je korisničko ime „tonychacon” tako da je korisnička kopija projekta na adresi https://github.com/tonychacon/blink i tu može da se uređuje. Kloniraće se projekat lokalno, napraviti tematska grana, promeniti kod i konačno poslati te promene nazad na GitHub. To se postiže na sledeći način.
Ako se sada korisnik vrati na svoju GitHub granu, vidi se da je GitHub primetio da je korisnik postavio novu tematsku granu i prikazuje se veliko zeleno dugme da se promene objave i otvara se zahtev za povlačenje ka prvobitnom projektu.
Drugi način je da korisnik ode na stranicu grananja (eng. Branches) https://github.com/[korisnik]/[projekat]/branches kako bi alocirao svoju granu i otvorio novi zahtev za povlačenje odatle.
Ako se klikne na prikazano zeleno dugme, pojaviće se ekran koji korisnika pita da njegovom zahtevu za povlačenje da naslov i opis. Ovo je veoma korisno, pošto korektan opis pomaže vlasniku prvobitnog projekta da shvati šta korisnik želi da uradi, da li su korisničke promene ispravne i da li će prihvatanje promena poboljšati prvobitni projekat.
Moguće je videti i listu komitova na korisničkoj tematskoj grani koji su „ispred” master grade i razlike svih promena koje će biti napravljene ako vlasnik projekta odluči da spoji ovu granu.
Platforma GitHub ima izuzetno efikasan sistem obaveštavanja korisnika. Korisnik je obevešten kada neko račva njegov projekat, kada ga neko spominje u komentaru i slično. Na slikama 22 i 23 prikazane su detaljne mogućnosti podešavanja notifikacija, koje su korisniku na raspolaganju. Većina korisnika isključuje obevešavanja putem mejla, zato što svakako obaveštenja dobijaju na samoj platformi.