Používání gitu při zběsilém refactoringu rubrika: Nástroje: Verzování
Mám nějaký projekt, který obsahuje různé třídy. Na každou třídu mám testy.
To takhle různě refaktoruji, a zjišťuji, že něco by bylo lepší takhle, a něco zase jinak, a že tady jsem zapomněl dokumentační komentář, a tady u metody nějaké chování. A tak dále.
Což jsou různé případy:
- Měním chování více tříd, které mezi sebou na sobě závisejí.
- Upravuji nebo doplňuji chování k existujícím třídám a metodám a testům.
Jak toto zohlednit v git-flow? To upravování (bod 2) chci spíše amendovat do nějakého předchozího komitu, ve kterém jsem tu třídu vytvářel. Pro změnu chování (bod 1) chci nový komit, nebo amedovat do jiného komitu než u bodu 2.
Co byste mi poradili? Jak k tomu přistupujete?
Můžeš vyvíjet nebo refaktorovat. Obojí současně je rizikové a vede k popisovanému stavu zmatení. Mezi jednotlivými commity tedy buď vyvíjej, anebo refaktoruj. Nikdy obojí. Do komentáře commitu vždy uveď, co jsi vyvinul nebo refaktoroval. Měla by ti na to stačit jedna věta - pokud by jich mělo být víc, zapomínáš dělat commity.
- Uděláš novou větev
- Vždy se refaktoruje jedna záležitost v jedné třídě tak, aby to nemělo vliv na zbytek aplikace. Test. Commit.
- Závislé třídy se poté upraví tak, aby tu třídu používaly novým způsobem. Test. Commit.
- Pokud je to potřeba, odstraníš z původní třídy tu část, na které už ty závislé třídy nejsou závislé. Testy. Commit.
- Provedeš rebase práce ostatních uživatelů do své vývojové větve
- Testy, testy, testy, merge do své hlavní větve a push na server
- Odstraníš vývojovou větev
Zatím jsem nepřišel na to, k čemu bych potřeboval amendování. Možná k vytvoření zmatku.
Pro zobrazení všech 3 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře