Führen Sie einen Remote-Zweig mit einem anderen lokalen Zweig zusammen

Lesezeit: 3 Minuten

Dies könnte eine doppelte Frage sein, aber ich konnte nicht herausfinden, wie ich vorgehen soll. Ich versuche, sagen wir, einen Remote-Zweig zusammenzuführen remoteBranch die kein Master-Zweig zu meinem lokalen Zweig ist localBranch.

Einer meiner Entwickler hat einen neuen Zweig für einen API-Endpunkt im Remote-Zweig hinzugefügt remoteBranch. Als Frontend-Entwickler muss ich diesen Zweig abrufen und mit meinem lokalen Entwicklungszweig zusammenführen localBranch um diesen API-Endpunkt zu nutzen. Wie kann ich das machen?

  • Können Sie erklären, warum Sie nicht verwenden können git merge remoteBranch während localBranch ist ausgecheckt?

    – mkrieger1

    17. August 2017 um 14:02 Uhr

  • Diese Frage zeigt sehr wenig Forschungsaufwand einer gut dokumentierten Funktion.

    – Jules

    17. August 2017 um 14:28 Uhr

  • Die Dinge sind verwirrend, wenn wir in solchen Dingen nicht genug Erfahrung haben, selbst wenn es gut dokumentierte Dinge gibt. Sie werden mit ausreichend nahen Merkmalen verwirrt. Deshalb habe ich um Hilfe gebeten. Tut mir leid, wenn es Ihre Erwartungen nicht erfüllt hat. Ich lerne nur Sachen.

    – Benutzer1012181

    17. August 2017 um 14:33 Uhr

Benutzer-Avatar
hspander

Einfach zusammenführen.

git fetch
git checkout localBranch
git merge remoteBranch

  • error: pathspec 'remoteBranch' did not match any file(s) known to git.

    – Benutzer1012181

    17. August 2017 um 14:09 Uhr


  • Wenn ich versuche zusammenzuführen, erhalte ich diese Meldung: not something we can merge

    – Benutzer1012181

    17. August 2017 um 14:15 Uhr

  • Es sollte auch ohne den Ursprung funktionieren. Versuchen git merge remoteBranch

    – hspander

    17. August 2017 um 14:16 Uhr

  • @ user1012181 Offensichtlich müssen Sie Ihre verwenden real Zweignamen, nicht wörtlich remoteBranch

    – mkrieger1

    17. August 2017 um 14:28 Uhr

  • @mkrieger1 hat den echten Zweignamen verwendet 🙂

    – Benutzer1012181

    17. August 2017 um 14:29 Uhr

Laut der Dokumentation von git-merge Sie können jede andere Filiale mit Ihrer lokalen Filiale zusammenführen.

Ihre aktuelle Filiale muss Ihre sein localBranch. Um den Remote-Zweig zusammenzuführen, geben Sie einfach Folgendes ein:

git merge remoteName/remoteBranch

In diesem Fall habe ich den Namen Ihrer Fernbedienung angenommen, die den Zweig enthält, den Sie anrufen müssen remoteName. Es kann anders heißen wie origin oder upstream. Sie müssen sicherstellen, dass Ihr lokaler Verweis auf den Entfernungszweig aktuell ist. Führen Sie also a fetch Befehl vor dem Zusammenführen wie folgt:

git fetch remoteName

Hilft Ihnen das?

Um remoteBranch mit localBranch zusammenzuführen

git fetch
git merge localBranch remoteName/remoteBranch

wo remoteName wahrscheinlich “origin” ist, können Sie das finden git remote -v

Manchmal möchten Sie jedoch möglicherweise eine Rebase durchführen (den Verlauf neu schreiben, um die Abfolge von Commits “sauber” zu halten), anstatt zusammenzuführen (was auch einen Merge-Commit hinzufügt).

Merge vs. Rebase

Sie können einen remoteBranch in einen localBranch umwandeln, indem Sie Folgendes verwenden:

git fetch
git checkout localBranch
git rebase remoteName/remoteBranch

Referenz: https://www.atlassian.com/git/tutorials/merging-vs-rebasing

Kann auch Folgendes verwenden, um dasselbe zu erreichen:

git pull origin origin-branch-name:local-branch-name

oben wird den Ursprungszweig mit dem lokalen Zweig zusammenführen, wobei der aktive intakt bleibt

git pull another-local-branch:another2-local-branch

Es sollte (nicht getestet) die beiden verschiedenen Zweige zusammenführen, während es aktiv intakt bleibt

Diese Antworten sind verwirrend, weil ich hier nachschaue: https://www.atlassian.com/git/tutorials/syncing/git-fetch
und der Befehl ist

git fetch <remote> <branch>

um einen bestimmten Zweig von entfernt nach lokal zu holen

Dann schätze ich, ich bin eigentlich neu bei Git, dass ich das kann git checkout branchIwantToMergeInto und dann tun git merge <branch> wo gibt es jetzt eine lokale Kopie von <branch> nach dem ursprünglichen Befehl.

Sagen wir also, ich arbeite an einem Zweig hotfix lokal und ich muss diesen Zweig mit Änderungen aktualisieren, die an der Fernbedienung vorgenommen wurden staging Zweig. Ich würde die folgende Befehlsfolge ausführen.

git fetch <remote> staging
git checkout hotfix
git merge staging

Aber vorher git checkout hotfix Ich würde sicherstellen, dass es keine nicht nachverfolgten Änderungen gibt (wiederum bin ich ein Git-Neuling, der mit erweiterten Befehlen wie Rebase usw. nicht vertraut ist), indem ich dies tue git add ., git commit -m "my commit message" an alle relevanten Branches, die einen Konflikt verursachen könnten.

1145010cookie-checkFühren Sie einen Remote-Zweig mit einem anderen lokalen Zweig zusammen

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

Privacy policy