Niedawno odbyłem dyskusję z ludźmi, którzy całkowicie sprzeciwiali się strategii bazowania gałęzi fabularnych na GIT. Wydaje się, że jest to przyjęty wzorzec korzystania z bazy tylko dla lokalnych, prywatnych oddziałów, ale nigdy nie używaj jej, gdy kilka osób pracuje nad tą samą funkcją i gałęzią, zgodnie z tak zwaną „Złotą Regułą Rebasingu” (jak wyjaśniono tutaj: https : //www.atlassian.com/git/tutorials/merging-vs-rebasing/conceptual-overview )
Jestem tylko zaskoczony, że istnieje konsensus w tej sprawie. Pracowałem 3 lata przy pełnej strategii rebasingu, z około 20 programistami pracującymi razem i zgadnijcie, co zadziałało.
Proces jest w zasadzie:
- Tworzysz gałąź funkcji, nazwijmy ją „myfeature” i pchnij ją do origin / myfeature
- Inne osoby mogą to sprawdzić i nad tym popracować
- Czasami możesz bazować na bazie master: z „myfeature”, git rebase origin / master ; a następnie tak, trzeba to naciskać.
- Co dzieje się, gdy inni ludzie chcą forsować swoje zobowiązania? Po prostu to zmieniają : git rebase origin / myfeature . Są teraz w trybie szybkiego przewijania do przodu i mogą je przesuwać bez użycia siły.
Jedyną zasadą, którą należy szanować, jest to, że gałąź funkcji jest własnością kogoś . Tylko właściciel może naciskać.
Przyznaję: jak tylko pojawi się siła nacisku, istnieje ryzyko popełnienia błędów. To prawda. Ale jest też wiele sposobów na odzyskanie po błędach, a tak naprawdę, w ciągu 3 lat rozwoju nie widziałem wielu błędów popychających siłę, a kiedy to się stało, zawsze znajdowaliśmy sposób na prawidłowe odzyskanie.
Dlaczego więc „Złota Reguła Rebazy” jest tak szeroko akceptowana? Czy jest coś jeszcze za czym tęskniłem? Rozumiem, że wymaga minimum organizacji (każda strategia wymaga pewnej organizacji), ale działa.