Jako deweloper o PHP-src Niedawno znalazłem się w następującej sytuacji:rebase na upstream zmian z niebanalną seryjnej zobowiązuje obecny lokalnie
A B C
o---o---o version1
\
o---o-----o---o master
x y D E
o---o---o upstream/master
x y z
Więc kiedy zrobić git push --dry-run upstream master version1
pojawia się typowa:
! [rejected] master -> master (fetch first)
Moja naturalna reakcja jest rebase poszkodowanemu gałąź i zachować seryjnej zobowiązuje:
git fetch upstream
git rebase -p upstream/master
Należy zauważyć, że oryginalne zatwierdzenie scalania nie było trywialne, ponieważ jest tak wiele zmian między gałęzią wersji a wzorcem; podjęcie takiego rozwiązania wymaga rozwiązania.
Wykonanie powyższej operacji ponownego użycia powoduje konflikt seryjny i muszę go ponownie rozwiązać; to prawie dokładnie ta sama praca, którą już wykonałem.
Czy jest lepszy sposób to zrobić? A może zapomniałem o oczywistej opcji rebase?
Czy * masz *, aby dokonać ponownej oceny? Zwykle też bazuję na rebase, ale ja również znajdowałem się w twojej sytuacji, w której to było po prostu niewykonalne i wróciłem ze standardowym scaleniem. – musiKk
Pewnie, mogę po prostu wcisnąć 'D, E, M (z)' zamiast 'D ', E'' ale wolę trzymać historię tak czystą jak tylko potrafię :) –
Słyszę cię. To zależy od twojej sprawy. Pracowałem nad połączeniami, które trwały wiele godzin. Moja miłość do czystej historii idzie tak daleko. :) – musiKk