połączyć jeden oddział lokalny z innym oddziałem lokalnym


167

Mam wiele gałęzi, które są rozgałęzione od głównego (każda w osobnym podkatalogu).

  • Oddział 1: nowy projekt, jeszcze nie ukończony
  • Branch2: poprawka do problemu, ale nadal w fazie testów
  • Branch3: bałagan wokół gałęzi, którego nie przywrócę

Przed zakończeniem testowania poprawki chciałbym, aby kod był już dostępny w Branch1, abym mógł kontynuować programowanie z zainstalowaną poprawką.
(Ale ponieważ moje doświadczenie z git nie jest takie duże, najpierw zacząłem bawić się scalaniem w trzeciej gałęzi, specjalnie stworzonej do bałaganu, zanim zepsuję Branch1 lub Branch2)

W mojej trzeciej oddziale najpierw wypróbowałem:

git merge feature/Branch1

ale spowodowało to następujący błąd:

fatal: 'feature/Branch1' does not point to a commit

Następnie wykonałem zatwierdzenie -a w moim Branch1 i spróbowałem ponownie, ale nadal wyświetla ten sam błąd.

Co ja robię źle? Co powinienem zrobić, aby scalić kod z - w tym przypadku - Branch1 z Branch3?

Odpowiedzi:


236

Najpierw zapłać do oddziału3:

git checkout Branch3

Następnie połącz Branch1:

git merge Branch1

A jeśli chcesz zaktualizowanych zatwierdzeń Branch1 na Branch2, prawdopodobnie szukasz git rebase

git checkout Branch2
git rebase Branch1

Spowoduje to zaktualizowanie Branch2 o najnowsze aktualizacje Branch1.


1
(Chcę zaktualizować Branch2 do Branch1 ;-)) Branch2 widzi Branch1, ale nie odwrotnie, kiedy robię git branch -a w obu gałęziach. Dlatego nie mogę wykonać rebase do Branch2 w Branch1: git rebase Branch2 -> fatal: Needed a single revision
Nemelis

Kiedy wykonuję rebase jako git rebase origin / Branch2, nadal wyświetla ten komunikat o błędzie + nieprawidłowe źródło nadrzędne / Branch2
Nemelis

1
@ Si8 to doda tylko zatwierdzenia z Branch1 do Branch3. Branch1 pozostanie bez zmian.
gabra

1
Dziękuję, więc jeśli jestem obecnie w gałęzi Dev i połączę Dev1, to połączy Dev1 z Dev, czy mam rację?
Si8

1
Tak. Polecam spróbować. Jeśli coś się zepsuje, możesz wrócić. Taki jest cel VCS.
gabra
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.