Czy poprawne jest poproszenie współpracowników o zmianę bazy ich żądań ściągania na github

25

Utrzymuję stosunkowo popularne repozytorium github.

Kiedy żądanie ściągnięcia jest dobre do scalenia, zwykle pytam autora o zmianę bazy na pojedyncze zatwierdzenie przed scaleniem (szczególnie gdy było wiele małych edycji).

Czy to dobra praktyka git? Czy jest to akceptowana / standardowa etykieta GitHub?

Więc niektóre korzyści:

  • Otrzymuję ładną, czystą historię zatwierdzeń w dziennikach zatwierdzeń
  • Nie muszę samodzielnie zmieniać zatwierdzenia
  • Deleguje część pracy

Niektóre możliwe wady:

  • Nie jestem pewien, czy to dobra etykieta
  • Nie jestem pewien, czy to dobra praktyka git
  • Zwykle prosiłem już o kilka innych zmian - to jeszcze jedna i nie chcę zniechęcać współpracowników.
Pablojim
źródło
1
Czy możesz opisać niektóre zalety i wady, które widzisz podczas wykonywania tego procesu w ten sposób?
Alex Feinman
1
Warto rozważyć dodatkowe zalety i wady. dobrze: git-bisect i inne odwrócenia są łatwiejsze, gdy każde zatwierdzenie tworzy stan do zbudowania lub w inny sposób kompletny, a takie podejście jest prostym sposobem na zagwarantowanie tego. źle: drobne zmiany z prostymi komunikatami zatwierdzania są wprowadzane do mega zatwierdzeń. EG „Zmieniono tę jedną linię, aby naprawić przypadek taki i taki”, może zostać wprowadzony do „Dodawanie funkcji foo, duża lista zmian ”. Utrudnia to znalezienie przyczyny konkretnej zmiany.
Gankro
1
Nic złego w ustalaniu standardów. Po prostu wyjaśnij z góry, czego się oczekuje. Przykład: symfony.com/doc/current/contributing/code/patches.html Przewiń w dół do kroku 3: Prześlij swoją
łatkę
6
@Granko: „Rebase” i „rebase into single commit” to dwa osobne problemy.
Matthew Scharley
2
Jeśli poproszony zostanie o to współtwórca, czy powinien zastąpić gałąź żądania ściągnięcia git push -f?
Flimm

Odpowiedzi:

16

Jeśli chodzi o Git, to jest coś w rodzaju świętej wojny, niezależnie od tego, czy powinieneś po prostu scalić gałęzie, czy też zatwierdzić zmiany w najnowszej wersji gałęzi, do której się przyłączasz. Istnieje wiele rozmów na temat tego, co jest lepsze, jeśli przeprowadzasz szybkie wyszukiwanie w Programmers.SE .

Co się tyczy etykiety, poradzimy sobie z tym z praktycznego punktu widzenia. Kiedy mamy do czynienia z nowym kodem pochodzącym od kogoś innego, zawsze najlepiej jest zmusić go do scalenia najnowszych zmian z oddziału lub odświeżenia go przed scaleniem, aby zapewnić czyste scalenie. Pamiętaj, że napisali kod, więc są zwykle najbardziej wykwalifikowani do rozwiązywania wszelkich konfliktów scalania / rebase. Osobiście nie widzę z tym problemu i cały czas widzę tę prośbę od innych osób. Dla mnie, jeśli nie ma żadnych konfliktów, często zrobię to sam, ponieważ jest to dwusekundowa aktualizacja, którą git może zastosować samodzielnie. Ale jeśli wystąpią konflikty, zawsze poproszę oryginalnego autora kodu, aby sam sobie z nim poradził.

Ponadto, w przypadku GitHub (przynajmniej), będą wyświetlać link do twojego CONTRIBUTINGpliku ponad wszelkimi próbami PR, dzięki czemu jest to dobre miejsce do nakreślenia twoich oczekiwań, a wiele projektów zawiera to, że będą łączyć tylko aktualne gałęzie.

Matthew Scharley
źródło
+1 za wprowadzenie pragmatyzmu do dyskusji. Tak, o to właśnie chodzi. Rozwiązywanie złożonych konfliktów przy dużych żądaniach ściągania może być dość trudne, szczególnie gdy zaangażowana jest pewna liczba zatwierdzeń. To jest punkt, w którym należy poprosić oryginalnego autora o włączenie się. Łatwe konflikty nie są problemem, nigdy nie były i nigdy nie będą.
JensG
1
+1 za faktycznie udzielenie odpowiedzi, a nie tylko komentarze!
Pablojim