Mám otevřenou PR na větvi tzv. feature-b
to bude brzy být sloučeny main
. Nicméně, psal jsem to na podporu své feature-a
větev, která právě probíhá. Chci pokračovat v práci na feature-a
a pákový práci, kterou jsem udělal v feature-b
před tím, než byl sloučen do main
.
Co je nejlepší způsob, jak pro mě udělat? Naše sloučí do main
jsou zmáčknutý, takže všechny commity na feature-b
bude přepsána jako jeden spáchat, když je spojil, aby main
. Proto, rebasing feature-a
na feature-b
teď bude mít v budoucnu konflikt bolest, když jsem sloučit feature-a
k main
protože stejné změny byly provedeny v různých zavazuje.
Co je nejlepší způsob, jak pro mě, aby zahrnovala změny provedené v feature-b
v mém feature-a
větev, přičemž minimalizuje budoucí bolest, když jsem se nakonec sloučit feature-a
k main
?
AKTUALIZACE
Šel jsem do toho a:
- Rebased
feature-a
nafeature-b
- Udělal více změn (pouze 1 commit)
feature-a
zatímcofeature-b
byla přezkoumána - Squash-spojil
feature-b
jakmile byl schválen (žádné další změny nutné, takžefeature-a
už má přesný kód, který byl sloučen) - Vytáhl poslední
main
a rebasedfeature-a
na vrcholu to
Jak se obával, git si stěžuje, že některé soubory jsou "oba upravené" nebo "jak kdy". To samo o sobě by být trochu nepříjemné, ale jednoduché to opravit. To, co dělá to neuvěřitelně matoucí - zejména pokud některý plynutí času uplynulo - je sloučit poznámky do souborů.
I když oba main
a feature-a
větve mají stejný kód ve všech souborech, jsem si super otravné chování:
- "Jak kdy" soubory, sloučit komentáře jsou přidány pro "HLAVU (Aktuální Změny)" a "rodič #HASH (commit message)". Jsem nucen vybrat jedno nebo druhé, i když jsou přesně stejné!
- "Oba upravené" soubory, je to ještě horší. "HLAVA (Aktuální Změny)" ukazuje správný kód. Nicméně, "rodič #HASH (commit message)" oddíl ukazuje, polovina kódu. Znovu, i když obě větve mají všechny kód!! Já vám kluk ne, přijetí "příchozí změnit" (jako označené pomocí VS Code) bude odstranit kód, který je v obou pobočkách!
Kdybych udělal tyto změny v rychlém sledu za sebou, byl bych beznadějně ztracený a zmatený o tom, co git je mi ukazoval. To se skutečně stalo několikrát v minulosti, ale já jsem nemohl dát prst na to, co bylo špatně. Teď, když jsem se reprodukovat to a ověřil chování, jsem z toho úplně vedle sebe jako toho, co git dělá a jak se lidé vyrovnávají s tímto scénářem.
AKTUALIZACE 2
OK, chápu, proč to bude odstranit kód. Je to proto, že změny, které jsem provedl v feature-b
byly v několika zavazuje, a ti se zavazuje skončil mačkán, když je sloučit, aby main
došlo. To je bezpochyby zdrojem bolesti a důvod, proč se snažím zjistit, zdravější workflow.