Po pierwsze, chcę podkreślić, że w git każdy pull
jest dosłownie operacją rozgałęziającą, a każda push
jest połączeniem. Na master
maszynie programisty jest całkowicie oddzielna gałąź od master
centralnego repozytorium, które udostępniasz, z równą pozycją z technicznego punktu widzenia. Od czasu do czasu zmieniam nazwę mojej lokalnej wersji na upstream
coś lub coś, jeśli bardziej odpowiada moim celom.
Zwracam na to uwagę, ponieważ wiele organizacji uważa, że używają oddziałów bardziej efektywnie niż twój kolega, a tak naprawdę robią niewiele więcej niż tworzenie dodatkowej nazwy oddziału po drodze, która i tak nie zostanie zapisana w historii. Jeśli twój kolega zatwierdza funkcje w jednym zatwierdzeniu atomowym, wycofanie jest równie łatwe jak zatwierdzenie scalania gałęzi funkcji. Zdecydowana większość gałęzi fabularnych powinna być krótkotrwała i często łączona.
Biorąc to pod uwagę, główne wady jego stylu pracy są dwojakie. Po pierwsze, bardzo trudno jest współpracować przy niedokończonej funkcji. Utworzenie oddziału nie byłoby jednak trudne tylko w tych momentach, gdy potrzebna jest współpraca.
Po drugie, bardzo utrudnia przegląd przed scaleniem. W tym momencie tak naprawdę nie musisz go przekonywać. Możesz zastosować takie narzędzie, jak github, gerrit lub gitlab, i wymagać recenzji kodu żądania ściągania oraz pozytywnych testów automatycznych dla wszystkich połączeń. Jeśli nie robisz czegoś takiego, szczerze mówiąc, nie używasz git do pełnego potencjału i nic dziwnego, że twój kolega nie widzi tego potencjału.