Basierend auf @Sailesh und @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)
Der erste Befehl stellt sicher, dass alle Upstream-Commits an den Remote-Master gesendet wurden, wobei die Sailesh-Antwort nicht erfolgen würde.
Der zweite führt eine Zusammenführung durch und erstellt Konflikte, die Sie dann lösen können.
Danach können Sie den Master endgültig auschecken, um zum Master zu wechseln.
Anschließend führen Sie den Entwicklungszweig mit dem lokalen Master zusammen. Das No-ff-Flag erstellt einen Commit-Knoten im Master, damit die gesamte Zusammenführung verfolgt werden kann.
Danach können Sie Ihre Zusammenführung festschreiben und vorantreiben.
Durch dieses Verfahren wird sichergestellt, dass ein Zusammenführungs-Commit von der Entwicklung zum Master vorhanden ist, das die Benutzer sehen können. Wenn sie sich dann den Entwicklungszweig ansehen, können sie die einzelnen Commits sehen, die Sie während der Entwicklung für diesen Zweig vorgenommen haben.
Optional können Sie Ihr Merge-Commit ändern, bevor Sie es verschieben, wenn Sie eine Zusammenfassung der Vorgänge im Entwicklungszweig hinzufügen möchten.
BEARBEITEN: Meine ursprüngliche Antwort schlug eine vor, git merge master
die nichts tat, es ist besser, git merge FETCH_HEAD
nach dem Abrufen des Ursprungs / Masters zu tun
git pull -u
Legt die Upstream-Verfolgung für den Zweig fest (oder für alle Zweige, wenn mehr als einer gedrückt wird). Sobald es eingestellt ist, bleibt die Verfolgung bestehen. Es gibt keinen Grund, es kontinuierlich zu verwenden.