Naprawdę podoba mi się ten artykuł o pozostawieniu kodu / kempingu w ładniejszym stanie, niż go znalazłeś - wydaje się praktycznym podejściem do zachowania czystości kodu.
Bardzo podoba mi się również gałąź funkcji jako sposób na rozwijanie funkcji w oderwaniu, więc jeśli ci się nie podoba, nie możesz łatwo scalić itp.
Jeśli jednak pracuję nad gałęzią funkcji i zauważyłem brzydki kod, czy powinienem to naprawić?
Wygląda na to, że istnieje wiele wad tego rozwiązania:
- Kiedy ponownie połączę gałąź, diff będzie bałagan, zaśmiecony zmiennymi nazwami lub ekstrakcją funkcji
- Jeśli funkcja zostanie porzucona, musisz albo wybrać zatwierdzenie czyszczenia (które może, ale nie musi działać, w zależności od tego, jak zmienił się kod w pobliżu, powodując bałagan podczas scalania), wykonaj to ponownie lub po prostu porzuć.
Z drugiej strony, jeśli nie zrobię tego, gdy jestem w aktach, to oczywiście zapomnę to zrobić za kilka dni, kiedy scalę gałąź.
Ostrzeżono mnie, że jest to oparte na opiniach (myślę, że nie tylko z tytułu tego tytułu should
), ale wydaje mi się, że istnieje odpowiedź (na pewno ludzie używają obu tych podejść, więc muszą mieć odpowiedź). Ponadto pytania development methodologies
na ten temat dotyczą tematu i myślę, że wymagają one pewnego stopnia opinii.
źródło
Odpowiedzi:
Powinieneś „naprawiać” kod tylko w gałęzi funkcji, jeśli i tak zmieniasz ten fragment kodu jako część funkcji.
Na przykład. Pracuję nad funkcją „Drukuj króliki” i znajduję kod drukarki
Zmieniam na:
Czemu:
Nie losowo uderzyłem w inną część bazy kodu i „poprawiłem to”, ponieważ:
źródło
Jeśli chcesz, aby refaktoryzacje „działały niezależnie” z bieżącej gałęzi funkcji, nie wprowadzaj tam zmian. Zamiast tego wykonaj refaktoryzację w głównej gałęzi programistycznej (lub „gałęzi refaktoryzacyjnej”, jeśli w twoim zespole często nie stosuje się zmian bezpośrednio w gałęzi deweloperów). Tak więc każdy z twojego zespołu (łącznie z tobą) może scalić zmiany w aktywnych gałęziach funkcji, nad którymi pracują. Należy jednak uważać, aby nie stosować żadnych globalnych refaktoryzacji w „połowie podstawy kodu” bez uprzedniego pytania współpracowników o pozwolenie - mogą nie być tak zadowoleni, jeśli refaktoryzacje zbyt mocno zakłócają ich bieżącą pracę.
Wyjątkiem jest sytuacja, gdy wprowadzone ulepszenia są lokalne dla części kodu, których dotkniesz dokładnie w tej gałęzi funkcji, i nie ma sensu nadawanie im innego cyklu życia niż „nowa funkcja”.
źródło
Celem
branch
typów jest zapewnienie zamiaru ich obsługi. Jeśli po styl GitFlow rozgałęzienia, wtedy może mieć rodzaje podobafeature
,hotfix
,release
itp .. W przypadku gałęzi funkcji, jego intencją jest, aby otaczać się wtopić się w innej gałęzi (tjdevelop
), który pokazuje, deweloper odpowiedzialny za scalanie, czym jest ta funkcja. Jeśli czyszczony kod nie jest częścią tej funkcji, nie zmieniaj go.Zamiast tego znajdź najniższą możliwą gałąź, w której znajduje się brzydki kod (prawdopodobnie
develop
) i stamtąd stamtąd. Zmień kod i zaproponuj włączenie go jako funkcji. Jeśli potrzebujesz tego kodu w tym, nad czym pracujesz, a szczególnie chcesz uniknąć konfliktów scalania, połącz tę gałąź w SWOJĄ gałąź.Oto całkiem dobre wyjaśnienie różnych strategii: https://www.atlassian.com/git/tutorials/comparing-workflows/
źródło
Prawdopodobnie dobrze jest naprawić „brzydki kod” na widoku, w zależności od tempa projektu, „brzydoty” kodu itp., Ale staraj się tego nie robić w samej gałęzi funkcji.
git add -p
do wprowadzenia poprawki, zatwierdzić tylko tę zmianę , a przed scaleniem / push (w rzeczy samej, najlepiej po następnym zatwierdzeniu), użyj interaktywnej bazy, aby przesunąć ten zatwierdzenie do najwcześniejszego możliwego punktu w twojej gałęzi, a może nawet zdecydować się na rozwój, w zależności od twojej historii.Zrobiłbym to również z czymkolwiek, co „naprawia” gałąź programistyczną (gdzie „poprawki” to zmiany, które ty lub inny programista możesz wprowadzić na widok, aby zapewnić zgodność kodu ze standardami). To pomaga...
źródło