1095 Stimmen

Git-Zweige von Master aktualisieren

Ich bin neu bei Git, und jetzt bin ich in dieser Situation:

  • Ich habe vier Zweige (master, b1, b2 und b3).
  • Nachdem ich an b1-b3 gearbeitet hatte, wurde mir klar, dass ich im Zweig master etwas ändern muss, das in allen anderen Zweigen vorhanden sein sollte.
  • Ich habe geändert, was ich brauchte in master und... hier ist mein Problem:

Wie aktualisiere ich alle anderen Zweige mit master Verzweigungscode?

5 Stimmen

Ich habe meine Antwort hier gefunden: Wie führt man selektive Dateien mit git-merge zusammen?

168 Stimmen

Eine weitere einfache Aufgabe, die durch Git erschwert wird. Die Git-Entwickler sollten Stack Overflow als Feedback in ihrem SDLC-Kreislauf nutzen. 300.000 Leute sollten darauf hinweisen, dass mit dem Arbeitsablauf von Git etwas nicht stimmt. Sie müssen einen UX-Experten einstellen, denn sie können Git offensichtlich nicht selbst richtig machen.

3 Stimmen

@jww was ist sdlc loop?system development life cycle?

2voto

Martin W Punkte 11

Für alle, die diesen Thread auf der Suche nach einer einfach zu bedienenden und konsistenten Lösung finden, um ihren aktuellen Zweig mit den letzten Änderungen auf Master zusammenzuführen:

Sie können dies zu Ihrer Shell-Konfiguration hinzufügen:

alias merge='currentBranch=$(git rev-parse --abbrev-ref HEAD) && git checkout master && git pull && git checkout $currentBranch && git merge master'

Dieser Alias funktioniert mit 5 Befehlen:

currentBranch=$(git rev-parse --abbrev-ref HEAD) # gets your current branch(needed for point 4)
git checkout master # checks out master
git pull # gets latest changes from master
git checkout $currentBranch # checks out the in point 1 saved branch
git merge master # merges your current branch with master

Nachdem Sie den Alias hinzugefügt haben, können Sie einfach den Befehl "merge" verwenden, um den Zweig, an dem Sie gerade arbeiten, zu "aktualisieren".

1voto

ManojP Punkte 5675

FÜR DEN FALL, DASS SIE ZU EINER LETZTEN ÜBERGABE ZURÜCKKEHREN UND AUCH DEN PROTOKOLLVERLAUF ENTFERNEN MÖCHTEN

Verwenden Sie den folgenden Befehl, wenn Sie zu einer vorherigen Übertragung mit der CommitID SHA - wechseln möchten 71e2e57458bde883a37b332035f784c6653ec509 auf diesen Commit verweisen können, wird nach diesem Commit keine Logmeldung mehr angezeigt und der gesamte Verlauf wird danach gelöscht.

git push origin +71e2e57458bde883a37b332035f784c6653ec509^:master

0voto

kris Punkte 829

Für dieses Problem gibt es zwei Möglichkeiten.

1) git rebase

2) git merge

Nur diff mit den obigen beiden im Falle der Zusammenführung, wird extra commit in der Geschichte haben

1) git checkout branch(b1,b2,b3)

2) git rebase origin/master (Im Falle von Konflikten lösen Sie diese lokal mit git rebase --continue)

3) git push

Alternativ dazu ist die Option git merge ähnlich

1) git checkout "Ihr_Zweig"(b1,b2,b3)

2) git merge master

3) git push

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X