Wie aktualisiere ich meinen funktionierenden Git-Zweig von einem anderen Zweig (Entwicklung)?

Lesezeit: 5 Minuten

Benutzer-Avatar
Eki Eqbal

Ich habe einen neuen Zweig mit dem Namen erstellt feature1 von der Hauptsache develop Filiale vor einem Monat.

⇒  git branch 
  develop
* feature1

Ich habe daran gearbeitet feature1 seit einem Monat und es wurden viele Änderungen vorgenommen develop.

Wie kann ich meinen aktuellen Zweig aktualisieren feature1 mit den neusten Commits von develop?

ICH MÖCHTE NICHT zur Kasse gehen master und meine zusammenführen feature1 darin verzweigen. Möchte ich auch nicht verwenden git cherry-pick um Commits manuell zu verschieben develop zu feature1.

Wie würde ich vorgehen?

Sie führen einfach Develop mit Feature1 zusammen:

git checkout feature1
git merge develop

Es ist nicht erforderlich, einen anderen Zweig wie Master einzubeziehen.

  • Aber das wird alle Commits von Develop in den Branch platzieren

    – htafoya

    7. Februar 2020 um 21:13 Uhr

  • Natürlich wird es. Die Frage war im Wesentlichen “wie kann ich alle Commits von Develop in den Branch platzieren”.

    – musikk

    11. Februar 2020 um 7:20 Uhr

  • Nein, ist es nicht, es war “Ich arbeite in Zweig X, aber ich möchte, dass dieser Zweig die neuesten Updates von der Entwicklung hat”. Wenn Sie eine PR zur Entwicklung durchführen, möchten Sie nur Ihre Zweig-Commits und nicht den gesamten Verlauf der Commits haben

    – htafoya

    12. Februar 2020 um 18:32 Uhr

  • Ich meine. der aktuelle Stand von „develop“ wird in „feature1“ sein, aber die Commits wurden dort nicht generiert. Bei der Zusammenführung sieht es so aus, als ob all diese Entwicklungs-Commits in „feature1“ generiert wurden.

    – htafoya

    13. Februar 2020 um 23:25 Uhr

  • Entschuldigung, ich glaube, ich habe schlecht erklärt. Lassen Sie es mich noch einmal versuchen … nachdem die Entwicklung läuft git merge develop, wird der Tipp von feature1 aktualisiert, einschließlich des neuen Codes von developer. Dadurch kann der Entwickler mit aktuellem Code arbeiten. Der Merge wirkt sich in keiner Weise auf den Entwicklungszweig aus. Vielleicht möchte dieser Entwickler irgendwann in der Zukunft Feature1 mit Develop (dh andersherum) zusammenführen, um den Tipp von Develop zu aktualisieren, und dies erfordert eine Überprüfung. An diesem Punkt werden alle erstellten temporären Merge-Commits in der Überprüfung angegeben, damit die Prüfer sehen können, wie sich die Entwicklung ändern wird.

    – Michael

    14. Februar 2020 um 0:28 Uhr

Benutzer-Avatar
Stackdave

Zuerst müssen Sie Ihre aktualisieren sich entwickeln Filiale, dann Kasse Ihre Besonderheit und es zusammenführen/rebasieren.

git checkout develop
git pull
git checkout feature/myfeature

Jetzt kannst du sich entscheiden zwischen Laufen:

git merge develop
git rebase develop
  • merge: speichert den Verlauf aller Commits aus Ihrem Zweig, und das ist wichtig, wenn Ihre partiellen Commits viele Inhalte enthalten, die interessant sein können, aufzubewahren.

  • rebase: Rebase bedeutet, den Commit-Verlauf von zu löschen feature und haben stattdessen die Geschichte aus develop; Diese Option ist in einigen Teams obligatorisch.

Wenn Sie bereit sind, können Sie zu Ihrem eigenen Zweig pushen (z. B. für einen Pull-Request).

git push origin feature/myfeature

  • Ich denke, dies ist eine bessere Lösung als die vorgesehene Antwort.

    – csg

    10. November 2020 um 14:11 Uhr

  • Rebase bedeutet das Löschen des Commit-Verlaufs aus feature und haben stattdessen die Geschichte aus develop

    –Timo

    13. Juli 2021 um 8:37 Uhr

Benutzer-Avatar
EliuX

Dieser Anwendungsfall ist sehr hilfreich, um Ihre PR-Branche auf dem Laufenden zu halten. Zunächst würde ich Ihnen empfehlen, zuerst Ihre Remote-Änderungen abzurufen, dh git fetch
und dann zusammenführen oder rebasen von developaber von der entfernten, zB

git rebase -i origin/develop

oder

git merge origin/develop

Auf diese Weise aktualisieren Sie Ihren PR-Zweig, ohne zwischen den Zweigen hin und her gehen zu müssen.

  • git rebase ist wie Merge, oder? aber das gleiche passiert,

    – Kavindu Gayantha

    17. April 2020 um 4:51 Uhr

  • Im git rebase schreibst du die Historie deines Branches mit einem Mix aus den 2 um, beim Merge wendest du einfach die Änderungen des anderen Branches in deinem neuen Merge-Commit an.

    – Eliux

    17. April 2020 um 5:51 Uhr

Wenn Sie das nicht wollen develop Kopf und die feature1 Kopf wird beides verschmelzen feature1aber stattdessen möchten Sie, dass jeder Zweigkopf beim “Aktualisieren” getrennt bleibt feature1 Verzweigung mit der letzten Bearbeitung von developverwenden kein Vorlauf:

git pull
git co feature1
git pull
git merge --no-ff develop
git push

Ich persönlich versuche zu verwenden --no-ff Jedes Mal, wenn ich eine Zusammenführung durchführe, weil dies meiner Meinung nach die Historie ziemlich sauber hält.

Benutzer-Avatar
Laudiocinio Carvalho

ZWEIGE:

DEV ====> entwickeln

feature1 ====> funktioniert


SCHRITT 1
GIT SENDEN VON DER WEBSITE

überprüft den Zweig, den Sie synchronisieren

git status

Dateien für den Commit hinzufügen

git add .

verpflichtet sich mit einer Beschreibung

git commit -m "COMMENT"

an die Zweigstelle senden, die Sie synchronisiert haben

git push

SCHRITT 2
SYNCHRONIZING THE UPDATED WORK BRANCH WITH DEV (development) – Synchronisiert den Working-Branch mit dem Development-Branch (aktualisiert den Development-Branch)

mit der Fernbedienung synchronisieren und zum DEV-Zweig wechseln

git checkout DEV

anfordern, den Branch, den Sie synchronisieren, mit dem Feature1-Branch zusammenzuführen

git merge feature1

Führen Sie den aktuellen Zweig mit dem Feature1-Zweig zusammen

git push

SCHRITT 3
GIT FINDING THE REMOTE – Aktualisieren Sie den Arbeitszweig aus dem aktualisierten Entwicklungszweig

verbindet sich mit dem Referenzzweig

git checkout DEV

Änderungen suchen

git pull

Synchronisiert mit Ihrem Arbeitszweig

git checkout feature1

Anforderung zum Zusammenführen des Zweigs, den Sie mit dem DEV-Zweig synchronisieren

git merge DEV

Führen Sie den aktuellen Zweig mit dem DEV-Zweig zusammen

git push

Benutzer-Avatar
Midi-

Folgen Sie in IntelliJ IDEA einfach diesen Schritten:

  1. Öffnen Sie das Git-Toolfenster (Ansicht->Toolfenster->Git)
    Geben Sie hier die Bildbeschreibung ein

  2. Wählen Sie “Protokoll”

    Geben Sie hier die Bildbeschreibung ein

  3. Rechtsklick auf “Entwickeln”

  4. klicken Sie auf entweder

    -Merge ‘develop’ auf ‘feature1’ (behält den gesamten Commits-Verlauf von deinem Zweig)

    oder

    – Rebasiere ‘develop’ in ‘feature1’ (löscht den Commit-Verlauf aus deinem Branch und habe stattdessen den Verlauf von Develop)

    Geben Sie hier die Bildbeschreibung ein

  5. Endlich Git-Push

Um zu vermeiden, dass die Commits durch eine einfache Zusammenführung entwickelt werden, habe ich festgestellt, dass je einfacher (weniger technisch versierter) Weg, es zu tun ist besonders, wenn Sie bereits gedrückt haben:

  1. Ändern Sie, um sich zu entwickeln, und stellen Sie sicher, dass Sie die neuesten Änderungen vorgenommen haben
  2. Erstellen Sie einen weiteren Zweig von developer , feature1_b
  3. Verschmelzen feature1 zu feature1_b
  4. Löschen Sie, wenn Sie Original wünschen feature1

Also, wenn Sie Ihre PR von machen feature1_b zu entwickeln, enthält es nur Ihre neuen Änderungen und nicht den gesamten Verlauf der Commits.

Wenn Sie nicht gepusht haben, ist die Antwort von @stackdave eine gute Antwort.

1321810cookie-checkWie aktualisiere ich meinen funktionierenden Git-Zweig von einem anderen Zweig (Entwicklung)?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy