Odpowiedzi:
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ł zdalny origin/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
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.
git fetch origin remote_branch_name
Scal zdalny oddział z oddziałem lokalnym
git merge origin/remote_branch_name
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
Jeśli już wykonałeś zdalny oddział i zrobisz to git branch -a
,
otrzymasz coś takiego:
* 8.0
xxx
remotes/origin/xxx
remotes/origin/8.0
remotes/origin/HEAD -> origin/8.0
remotes/rep_mirror/8.0
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)