Andere Antworten sahen unvollständig aus.
Ich habe es unten vollständig versucht und es hat gut funktioniert.
HINWEIS:
1. Erstellen Sie eine Kopie Ihres Repositorys, bevor Sie es unten versuchen, um auf der sicheren Seite zu sein.
Details:
1. Die gesamte Entwicklung findet im Dev-Zweig statt.
2. Der Qa-Zweig ist genau dieselbe Kopie von Dev.
3. Von Zeit zu Zeit muss der Dev-Code in den Qa-Zweig verschoben / überschrieben werden
Also müssen wir den qa-Zweig vom dev-Zweig überschreiben
Teil 1:
Mit den folgenden Befehlen wurde das alte qa auf ein neueres dev aktualisiert:
git checkout dev
git merge -s ours qa
git checkout qa
git merge dev
git push
Automatischer Kommentar für den letzten Push gibt unten:
// Output:
// *<MYNAME> Merge branch 'qa' into dev,*
Dieser Kommentar sieht umgekehrt aus, da die obige Reihenfolge auch umgekehrt aussieht
Teil 2:
Im Folgenden finden Sie unerwartete, neue lokale Commits in dev, die unnötigen,
also müssen wir sie wegwerfen und dev unberührt lassen.
git checkout dev
// Output:
// Switched to branch 'dev'
// Your branch is ahead of 'origin/dev' by 15 commits.
// (use "git push" to publish your local commits)
git reset --hard origin/dev
// Now we threw away the unexpected commits
Teil 3:
Überprüfen Sie, ob alles wie erwartet ist:
git status
// Output:
// *On branch dev
// Your branch is up-to-date with 'origin/dev'.
// nothing to commit, working tree clean*
Das ist alles.
1. altes qa wird jetzt durch neuen dev-verzweigungscode überschrieben
2. local ist sauber (remote origin / dev ist unberührt)