Obecnie pracuję nad projektem i mamy kod źródłowy w prywatnym repozytorium na Githubie, z każdym z nas jako współpracownikiem.
Nie jest jasne, jak oddzielić każdą naszą pracę.
Myślę, że powinniśmy zrobić:
- Każdy z nas musi rozwidlić repozytorium
- Kiedy jesteśmy gotowi przekazać nasz kod, przesyłamy żądanie ściągnięcia do repozytorium lidera projektu, który może jednocześnie wykorzystać to jako okazję do przeglądu kodu
Jeśli chodzi o prywatne repozytoria, czy do tego należy używać rozwidlenia, czy też nadmiernie komplikuję sytuację?
Odpowiedzi:
Klonowanie repozytorium na lokalnej maszynie programisty jest już rodzajem forku. Jeśli każdy programista rozwiąże problem z repozytorium na GitHub, służy to tylko do opublikowania jego aktualnego stanu pracy.
Może to być odpowiednie, gdy istnieje centralne repozytorium główne i wielu autorów, którym nie ufa bezpośredni dostęp do tego repozytorium. Działa to doskonale w przypadku projektów typu open source, w których każdy może przyczynić się i wysłać żądanie ściągnięcia, które jest następnie sprawdzane i łączone przez grupę głównych opiekunów. Korzystanie z wielu repozytoriów wymusza przepływ pracy oparty na żądaniach pull.
W małym, zaufanym zespole nie jest to konieczne. Aby zapobiec wzajemnemu kontaktowaniu się różnych osób, można zastosować strategię taką jak Git Flow: Każda mała funkcja jest implementowana w osobnej gałęzi funkcji. Po zakończeniu funkcji jest ona scalana z gałęzią master. Większość zespołów połączy to z żądaniem ściągnięcia lub przeglądem kodu zgodnie z konwencją, ale są na tyle zaufane, że w razie potrzeby pominą to. Podczas gdy oddzielne repozytoria doprowadziłyby do opublikowania przez deweloperów ich obecnego stanu na rozwidlonych, ale widocznych dla zespołu repozytoriach, w jednym wspólnym repozytorium przesunęłyby swoje zmiany do oddzielnej gałęzi funkcji. W większości przepływów pracy odradza się wszelkie prace programistyczne na master / trunk.
Różnica polega wyłącznie na zarządzaniu dostępem, a nie na implementowanym przepływie pracy. W obu konfiguracjach można wykonywać przepływy pracy oparte na żądaniach ściągania. Z surowego punktu widzenia Git nie ma dużej różnicy między rozwidleniem a odgałęzieniem - każde z nich zasadniczo dzieli historię projektu i pozwala na dodawanie zmian bez wpływu na inne gałęzie / widelce. Biorąc to pod uwagę, znacznie lepiej byłoby udostępnić jedno repozytorium w zaufanej, zamkniętej grupie.
źródło
To zadziałałoby lub możesz użyć metody rozgałęziania, w której każdy contrib ma swoją własną gałąź (gałęzie), które, jeśli zespół wyrazi zgodę, zostaną połączone z master.
źródło