Mam następujący git
obieg:Czy zgniatanie to jedna najlepsza praktyka (w tym konkretnym przepływie pracy)?
- Utwórz nową cechą oddziału
- Prace nad fabularnym oddziału
- Commit często
- Gdy funkcja jest zakończona, wtopić się
master
oddziału - spłukać i powtórzyć
Czasami jednak potrzebuję aby przywrócić całą funkcję z master. Może to wymagać dużej liczby revert
ing. (Powodem konieczności przywrócenia funkcji jest posiadanie strony internetowej działającej na jednym repo, a następnie skryptu, który wdraża witrynę do naszej witryny produkcyjnej lub witryny testowej, obie są wykonywane z naszego głównego oddziału. Nie pytaj, po prostu nad tym pracowałem. Czasami pracuję nad czymś, co wystawiam na scenie, ale wtedy trzeba dokonać natychmiastowej zmiany, więc potrzebowałem jakiegoś sposobu, aby wyciągnąć moje zmiany w porządku. do czyszczenia repo ..)
Myślę, że najłatwiej to zrobić, jeśli każda gałąź funkcji ma tylko jedno zatwierdzenie. Wtedy mógłbym revert
zatwierdzić. Tak więc naturalnie myślę o zgnieceniu wszystkich zatwierdzeń gałęzi funkcji w jeden, przed scaleniem go w master
.
Więc teraz mój workflow wyglądałby następująco:
- Utwórz nową funkcję oddziału
- Prace nad fabularnym oddziału
- Commit często
- Gdy funkcja jest kompletna git rebase -i HEAD ~ number_of_commits (lub jeśli oddział zdalny jest dostępny, pochodzenie/cecha-gałęzi)
Czy są jakieś problemy z tą logiką? Czy jest to sprzeczne z najlepszymi praktykami? Zrobiłem kilka testów samemu i cały przepływ pracy wydaje się przebiegać sprawnie i rozwiązuje mój problem, ale chciałem uruchomić ten pomysł przez innych (mądrzejszych) Git-ererów, aby sprawdzić, czy coś jest z tym nie tak.
Dzięki!
Czy spojrzałeś na 'git merge --squash'? Czy istnieje jakiś szczególny powód, dla którego wybrałeś 'rebase' zamiast używać' squash merge'? Nie masz historii liniowej, gdy wykonujesz 'scalanie', ale zatwierdzenia w gałęzi operacji będą nadal miały liniową historię, a ty będziesz miał tylko jedno scalenie. – Tuxdude
Po prostu przyjrzałem się temu scenariuszowi. Bardzo dobrze. Nie wiem, którego użyć więcej (może "rebase", ponieważ wyrzucam te gałęzie dość często), ale posiadanie historii w moim dziale funkcji jest miłe. Dzięki za pomoc! –
@Tuxdude: Rozważ podjęcie tej odpowiedzi. Prawdopodobnie * jest * odpowiedzią. – sleske