Używam GitHub od dłuższego czasu i zwykle przesuwałem swoje gałęzie funkcji, a następnie uruchamiałem żądanie ściągnięcia, które sam scaliłem. Odkryłem, że pomogło mi to śledzić, gdzie scaliłem oddziały.
Ale ostatnio czytam coraz więcej o tym, jak działa Git i zdałem sobie sprawę, że mogę używać poleceń scalania, aby odwoływać się podczas łączenia oddziałów.
Co więc powinienem zrobić, łącząc gałąź funkcji w master:
Wykonaj scalanie-zatwierdzenie na master, a następnie wypchnij ją w górę LUB Pchnij gałąź lokalną i rozpocznij żądanie ściągnięcia?
Przeczytałem Wprowadzenie do wniosków o ściągnięcie dla 2-osobowego zespołu - scalić własne żądania? oraz Jaki jest przepływ pracy z 2 osobami przy projekcie i Czy powinienem otwierać wnioski oddziału z oficjalnego repozytorium lub mojego widelca? ale żaden z nich nie odpowiada na to, czego szukam.
źródło
Odpowiedzi:
Mechanizm git seryjnej:
Używanie
git merge feature
podczas mistrz scala gałąźfeature
domaster
i tworzymerge-commit
(jeśli latorośl nie może być szybko przekazywane) w historii git. Aby wymusić stworzeniemerge-commit
, użyj--no-ff
opcji za pomocąmerge
.Mechanizm scalania żądania ściągnięcia:
kiedy uruchamiamy żądanie ściągania w GitHub, tworzy miejsce, w
GitHub Issue
którym ludzie mogą rozmawiać i omawiać zatwierdzenia w PR przed ich scaleniem. Kiedy PR jest scalany w GitHub, robi dokładnie to samo, cogit merge feature
.Co powinienem zrobić?
Jeśli chodzi o historię, nie ma między nimi żadnej różnicy.
Jeśli chodzi o wkład, twoi współautorzy nie będą musieli niczego innego w tych dwóch sytuacjach. Są takie same (bez miłej małej czatu).
Najlepsze praktyki:
I nie byłem w stanie znaleźć najlepszych praktyk, ale logika mówi, że PR nie są zbyt pomocne, jeśli w repozytorium jest tylko jedna osoba.
@lxrec i @amon pomogły mi dojść do tego wniosku.
źródło
git merge
może nie zarejestrować zatwierdzenia scalania, jeśli może wykonać „przewijanie do przodu”. Aby wymusić zatwierdzenie scalania, możesz dodać--no-ff
opcję.Jak powiedział Ashhar , pod względem technicznym i historycznym nie ma różnicy. W przypadku projektów z małym zespołem wolę bezpośrednie połączenie zamiast dodatkowego etapu tworzenia PR. Jednak, gdy funkcja wymaga przeglądu / opinii lub gdy jest to PWT i nad nią będzie pracować więcej niż jedna osoba, mam tendencję do otwierania PR i dodawania listy zadań do opisu PR.
Pamiętaj, że
git merge
możesz użyć szybkiego przewijania do przodu, jeśli nie ma zmian w master, więc możesz chcieć użyćgit merge --no-ff
. Zwykle nie.Podsumowując, używaj PR tylko wtedy, gdy potrzebujesz dyskusji. W przeciwnym razie po prostu połącz bezpośrednio.
źródło