Dla innych osób, które trafiają na ten post w Google. Istnieją dwie opcje: scalanie lub ponowne bazowanie gałęzi. Oba działają inaczej, ale mają podobne wyniki.
Odpowiedź akceptowana jest rebase . Spowoduje to pobranie wszystkich wykonanych zatwierdzeń, our-team a następnie zastosowanie wykonanych zatwierdzeń featurex, zachęcając do ich scalenia w razie potrzeby.
Jednym z ograniczeń związanych z ponownym bazowaniem jest to, że tracisz / przepisujesz historię gałęzi, mówiąc gitowi, że twoja gałąź nie zaczęła się od zatwierdzenia 123abc, ale 456cde. Spowoduje to problemy dla innych osób pracujących w gałęzi, a niektóre narzędzia zdalne będą na to narzekać. Jeśli jednak jesteś pewien tego, co robisz, do tego --forcesłuży flaga.
To, co sugerują inne plakaty, to połączenie . Spowoduje to pobranie featurexgałęzi z dowolnym stanem i spróbuje scalić ją z bieżącym stanem our-team, zachęcając do zrobienia jednego, dużego, zatwierdzenia scalenia i naprawienia wszystkich błędów łączenia przed naciśnięciem our-team. Różnica polega na tym, że starasz się swoimi featurexzobowiązuje zanim się our-teamnowych zatwierdzeń i następnie ustalenie różnic. Nie przepisujesz również historii, zamiast tego dodajesz do niej jeden commit, zamiast przepisać te, które były wcześniej.
Obie opcje są prawidłowe i mogą działać w tandemie. To, co jest zwykle (przez to mam na myśli, jeśli używasz szeroko rozpowszechnionych narzędzi i metod, takich jak git-flow ) jest wykonywane dla gałęzi funkcji, to scalanie jej z główną gałęzią, często przechodząc przez żądanie scalenia i rozwiązując wszystkie konflikty które powstają w jednym (lub wielu) zatwierdzeniach scalających.
Rebasing jest interesującą opcją, która może pomóc w naprawieniu gałęzi przed ostatecznym przejściem przez scalanie i złagodzić ból związany z koniecznością wykonania jednego dużego zatwierdzenia przez scalanie.