Na podstawie @Sailesh i @DavidCulp:
(on branch development)
$ git fetch origin master
$ git merge FETCH_HEAD
(resolve any merge conflicts if there are any)
$ git checkout master
$ git merge --no-ff development (there won't be any conflicts now)
Pierwsze polecenie upewni się, że wszystkie wcześniejsze zatwierdzenia zostały wykonane dla zdalnego mistrza, z odpowiedzią Sailesh, która by się nie zdarzyła.
Drugi wykona scalenie i stworzy konflikty, które możesz następnie rozwiązać.
Po wykonaniu tej czynności możesz w końcu dokonać transakcji wzorca, aby przełączyć się na wzorzec.
Następnie scalasz gałąź rozwoju z lokalnym wzorcem. Flaga no-ff utworzy węzeł zatwierdzania w systemie głównym, aby śledzenie całego scalenia było możliwe.
Następnie możesz zatwierdzić i pchnąć swoje scalenie.
Ta procedura upewni się, że istnieje połączenie zatwierdzania przez programistę do opanowania, które ludzie mogą zobaczyć, a następnie, jeśli przejdą do gałęzi programistycznej, zobaczą poszczególne zatwierdzenia dokonane w tej gałęzi podczas jej rozwoju.
Opcjonalnie możesz zmienić zatwierdzenie scalania przed wypchnięciem go, jeśli chcesz dodać podsumowanie tego, co zostało zrobione w gałęzi programistycznej.
EDYCJA: moja oryginalna odpowiedź sugerowała, że git merge master
nic nie zrobiłem, lepiej zrobić git merge FETCH_HEAD
po pobraniu źródła / wzorca
git pull -u
ustawia śledzenie w górę dla gałęzi (lub wszystkich gałęzi, jeśli przekazujesz więcej niż jedną). Po ustawieniu śledzenie będzie się powtarzać. Nie ma powodu, aby używać go w sposób ciągły.