/ / Ponowne podzielenie scalonej gałęzi programistycznej z Master w Git - git

Re dzielenie połączonej gałęzi rozwojowej z Master w Git - git

Połączyłem gałąź rozwoju z gałęzią master i od tego czasu wprowadziłem wiele zmian. Jak można ponownie podzielić gałąź programistów od głównej i zachować zmiany.

master -------merged -------changes -- mstr & dev ------need to split  ----master
dev------------^                                             ------------- dev

Odpowiedzi:

2 dla odpowiedzi № 1

Jeśli będziesz kontynuować rozwój na swoim dev oddział i dalej master, musisz po prostu dokonać zmiany bazy dev na górze master:

Po pierwsze, połączyłeś się dev do master:

x--x--x--x---X (master)
          /
y--y--y--y (dev)

Potem dokonujesz ewolucji dev i master:

x--x--x--x---X--x--x (master)
          /
y--y--y--y1--z--z (dev)

Jak można ponownie podzielić gałąź programistów od głównej i zachować zmiany.

git checkout dev
git rebase --onto master y1 dev

Możesz spróbować git rebase -p, dla zachowania zatwierdzenia scalania, ale w twoim przypadku po prostu zmieniamy część, która Cię interesuje, „z„popełnia, jest prostsze.

x--x--x--x---X--x--x (master)
          /       
y--y--y--y         z"--z" (dev rebased)

0 dla odpowiedzi nr 2

Z opisu chcesz (w przenośni)przenieś gałąź „master” z powrotem do punktu tuż przed scaleniem, a chcesz, aby bieżące prace programistyczne były w gałęzi „development”.

Jeśli dobrze rozumiem twoje pragnienie, jest to w zasadzie zamiana dwóch wskaźników gałęzi, z drobnymi poprawkami, aby upewnić się, że nie wskazujesz samego zatwierdzenia scalenia.

Na master, użyj git branch --move master new_develop zmienić nazwę master na nową nazwę.

Następnie zakładając, że twoja stara gałąź programistyczna wskazuje ten stary zatwierdzenie scalania (sprawdź to gitk development), posługiwać się git branch master development^2 aby odtworzyć wzorzec, ale na drugim rodzicu scalania programowania (zwróć uwagę na kolejność zamienionych argumentów).

Wreszcie, git branch --move new_develop development przywrócić starą nazwę oddziału. Sprawdź to za pomocą gitk lub twoje ulubione narzędzie.