OK, myślałem, że to prosty scenariusz git, czego mi brakuje?
Mam masteroddział i featureoddział. Trochę pracuję master, trochę dalej feature, a potem jeszcze trochę dalej master. Kończę z czymś takim (kolejność leksykograficzna oznacza kolejność zatwierdzeń):
A--B--C------F--G (master)
\
D--E (feature)
Nie mam problemu z aktualizowaniem git push origin masterpilota masterani z git push origin feature(gdy jest on feature) utrzymywaniem zdalnej kopii zapasowej dla mojej featurepracy. Do tej pory jesteśmy dobrzy.
Ale teraz chcę bazować featurena F--Gzatwierdzeniach na master, więc ja git checkout featurei git rebase master. Nadal dobrze. Teraz mamy:
A--B--C------F--G (master)
\
D'--E' (feature)
Problem: w momencie, gdy chcę wykonać kopię zapasową nowego, opartego na featurerozgałęzieniu git push origin feature, push jest odrzucany, ponieważ drzewo zmieniło się z powodu zmiany. Można to rozwiązać tylko za pomocą git push --force origin feature.
Nienawidzę używania, --forcenie będąc pewnym, że go potrzebuję. Więc potrzebuję tego? Czy ponowne bazowanie niekoniecznie oznacza, że następne pushpowinno być --forcepełne?
Ta gałąź funkcji nie jest dzielona z innymi programistami, więc nie mam problemu de facto z siłą nacisku, nie zamierzam stracić żadnych danych, pytanie jest bardziej koncepcyjne.