Wyciągnąłem wszystkie zdalne gałęzie przez git fetch --all
. Widzę gałąź, którą chciałbym scalić, git branch -a
jako piloty / pochodzenie / nazwa gałęzi. Problem polega na tym, że nie jest dostępny. Nie mogę scalić ani kasy?
źródło
Wyciągnąłem wszystkie zdalne gałęzie przez git fetch --all
. Widzę gałąź, którą chciałbym scalić, git branch -a
jako piloty / pochodzenie / nazwa gałęzi. Problem polega na tym, że nie jest dostępny. Nie mogę scalić ani kasy?
Możesz odnieść się do tych gałęzi zdalnego śledzenia ~ (wymienionych z git branch -r
) nazwą ich pilota.
Musisz pobrać zdalną gałąź:
git fetch origin aRemoteBranch
Jeśli chcesz scalić jeden z tych odległych oddziałów w oddziale lokalnym:
git checkout master
git merge origin/aRemoteBranch
Uwaga 1: W przypadku dużego repozytorium z długą historią będziesz chciał dodać tę --depth=1
opcję, gdy będziesz jej używać git fetch
.
Uwaga 2: Te polecenia działają również z innymi zdalnymi repozytoriami, dzięki czemu możesz skonfigurować origin
i i upstream
jeśli pracujesz na rozwidleniu.
Scenariusz przeciwny: jeśli chcesz scalić jeden ze swoich oddziałów lokalnych ze oddziałem zdalnym (w przeciwieństwie do oddziału zdalnego do lokalnego, jak pokazano powyżej), musisz najpierw utworzyć nowy oddział lokalny na szczycie tego oddziału zdalnego:
git checkout -b myBranch origin/aBranch
git merge anotherLocalBranch
Chodzi tutaj o połączenie „jednego z lokalnych oddziałów” (tutaj anotherLocalBranch
) ze zdalnym oddziałem ( origin/aBranch
).
W tym celu najpierw tworzysz „ myBranch
” jako reprezentację tej zdalnej gałęzi: to jest git checkout -b myBranch origin/aBranch
część.
A potem możesz się anotherLocalBranch
do niego połączyć myBranch
.
aLocalBranch
” z „myBranch
”, gdzie „myBranch
” oznacza oddział zdalnyorigin/aBranch
.aLocalBranch
to nie literówka, ale zatwierdziłeś najnowszą edycję (2 lata później!), Która poprawia tę „prawdopodobną literówkę”. Chciałem się z tobą skontaktować przed cofnięciem edycji.Za każdym razem, gdy dokonuję scalenia, wchodzę do gałęzi, w której chcę się połączyć (np. „
git checkout branch-i-am-working-in
”), A następnie wykonuję następujące czynności:git merge origin/branch-i-want-to-merge-from
źródło
git fetch origin/branch-i-want-to-merge-from
pierwszy, prawda?git fetch origin develop
a następniegit merge origin/develop
git merge
sam tego nie zrobi.git add .
->git commit -m <message>
->git push -u origin <branch>
?Najpierw pobierz gałąź zdalną z miejsca początkowego.
Scal zdalny oddział z oddziałem lokalnym
źródło
Może chcesz śledzić oddział zdalny za pomocą oddziału lokalnego:
git branch new-local-branch
git branch --set-upstream-to=origin/remote-branch new-local-branch
git checkout new-local-branch
git pull
źródło
Jeśli już wykonałeś zdalny oddział i zrobisz to
git branch -a
,otrzymasz coś takiego:
Następnie możesz użyć
rep_mirror/8.0
do lokalnego wyznaczenia zdalnego oddziału.Sztuka polega na tym, że
remotes/rep_mirror/8.0
to nie działa, alerep_mirror/8.0
działa.Więc takie polecenie
git merge -m "my msg" rep_mirror/8.0
scalanie.(uwaga: jest to komentarz do odpowiedzi @VonC. Podaję to jako inną odpowiedź, ponieważ bloki kodu nie pasują do formatu komentarza)
źródło