Wpis z mikrobloga

Mirki eksperci.
Mam sobie feature brancha odbitego od developa. W międzyczasie doszło trochę commitow na develop i feature. Finalnie jednak domergowalem mastera do feature i rozwiązałem konflikty wiec jest up-to-date. Teraz chciałbym zrobić rebase i squash, ale niestety każdy stary commit nakłada się na develop po kolei i trzeba rozwiązywać konflikty pomimo, że mój HEAD jest up-to-date. Jak zrobić taki force squash bez rozwiązywania konfliktów?
#programowanie #programista15k #git
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@victordeleco2:

każdy stary commit nakłada się na develop po kolei i trzeba rozwiązywać konflikty


na tym polega rebase ziom, dlatego nie popracujesz sobie długo na boku jeśli ktos ci bedzie grzebał w tych samych miejscahc w głónym projekcie bo nakład pracy na rozwiazywanie konflików osiagnie 100% twojej przepustowości. Ponieważ ty musisz ogarniać cała historię zmian od punktu rozgałęzienia na dwóch branach. Oczywiscie robiąc czesto rebase ograniczasz ilośc zmian na jednej
  • Odpowiedz
@zibizz1 Zgadza się wiem o tym. Tu jest taka sytuacja, ze domergowalem do siebie inny branch który miał potrzebne mi zmiany. Tam było duzo commitow. Następnie ten branch został zmergowany do develop wiec wtedy ja mogłem już domergowac develop do mnie. Jednak teraz wszystkie stare commity muszę po kolei resolvowac. Może lepsza opcja na początku pracy byłoby wyjście z brancha kolegi gdzie były potrzebne mi zmiany zamiast z developa i domergowanie
  • Odpowiedz
@victordeleco2 git merge -squash możesz zrobić jak chcesz merge z jednym. A najlepiej to nic nie rób, w dobrze skonfigurowanym repo pushujesz węża commitów, a potem zaznaczasz opcję, że ma sam squashować przy mergu do mastera a feature brancha skasować. Szkoda czasu na pierdoły typu ciągłe poprawianie konfliktów.
  • Odpowiedz
@Romska_Palo_Ul_Laputa: chyba chodzi o to, że te commity co ma u siebie i te co są na developie mają inny sha więc nawet jak ma plik kropka w kropkę taki sam to konflikt będzie.

@bin-bash chyba chce to zrobić, ale wpierw dam musi wszystko rozwiązać =]

I ten, sorry jak gdzieś była robiona jakaś magia i już rozwiązywałem commity realnie robiąc nowy commity to chyba masz do rozwiązania konflikty
  • Odpowiedz
@victordeleco2: zrób to w takim razie inaczej.

Nie integruje sobie developa, szkoda życia.
- będąc na swoim branchu zrób sobie reset soft (git reset --soft hash-pierwszego-commitu-brancha)
- zrzuć te rzeczy na półeczkę żeby im się nic nie stało (git stash -u)
- wskocz
  • Odpowiedz
@victordeleco2: a jak używasz intellij, to wystarczy zrobić nowego brancha z developa i wskoczyć na niego. Po czym w drzewku commitow zaznaczyć wszystkie commity, to po prawej pojawi się drzewko z sumarycznymi zmianami z tych plików. Prawy myszy i dajesz cherry-pick, a samo się zrobi to co opisałem powyżej
  • Odpowiedz