Angenommen, mein aktueller Zweig ist myfeature. Ich möchte den Master auf den neuesten Stand bringen. Beide git mergegit pull immer in den aktuellen Zweig zusammenführen, soweit ich das beurteilen kann.
Gibt es eine Möglichkeit, Änderungen von einem entfernten Zweig (z. B. Ursprung/Master) in einen Zweig zu mischen, in dem ich mich derzeit nicht befinde (Master)? Ich kann mir einen Weg vorstellen:
(Möglicherweise ist meine ganze Frage falsch: würde git fetch Master automatisch aktualisieren, um Ursprung/Master abzugleichen, wenn Remote-Tracking aktiviert ist?)
Ich habe die Antwort gefunden, die für mich in einem anderen Stackoverflow-Beitrag funktioniert hat: stackoverflow.com/questions/3216360/… Grundsätzlich: git fetch <remote> <srcBranch>:<destBranch>
– Koralle
10. September 2014 um 22:51 Uhr
Mögliches Duplikat von Merge, update, and pull Git branchs without using checkouts
– pkamb
10. August 2017 um 20:26 Uhr
pkamb
git fetch -u origin master:master
Git-Branches zusammenführen, aktualisieren und abrufen, ohne Checkouts zu verwenden
Das -u oder --update-head-ok stellt sicher, dass der Befehl auch dann noch funktioniert, wenn Sie den angegebenen Zweig ausgecheckt haben, was andernfalls zu dem Fehler führt:
fatal: Weigert sich, in den aktuellen Zweig refs/heads/master des nicht-nackten Repositorys zu holen
Sehr schön! – erspart das lästige „Zur Hauptleitung wechseln, ziehen, zu Zweig wechseln“, bevor ich meine Sachen auf die aktuelle Hauptleitung rebasiere …
– Frank Nocke
17. Oktober 2018 um 9:59 Uhr
Torek
Sie haben Recht, dass Pull/Merge nur in den aktuellen Zweig zusammengeführt wird.
Sie können jedoch weiterhin fetch verwenden. Zum Beispiel (Namen unten geändert, um die Unschuldigen zu schützen, aber die Hashes sind echt):
In diesem Fall, fetch aktualisierte eine Reihe von Ursprungs-/Zweigstellen. Keine der lokalen Niederlassungen wurde aktualisiert (git rev-parse Ausgabe für diese bleibt gleich), aber die neuen Commits sind jetzt im Repo und können angezeigt werden (git log origin/OTHER_BRANCH, gitk --alletc).
Je nach Bedarf kann dies ausreichend sein. Insbesondere können Sie sehen, was angewendet werden muss origin/master auf zu masterund das alles, ohne Ihre aktuelle Filiale zu verlassen.
Ok, ich verstehe, was du sagst – ich kann anfangen, Befehle wie “git branch –merged origin/master” anstelle von “git branch –merged master” zu verwenden. Aber ansonsten nur eine kleine lästige Einschränkung von git.
– Steve Bennett
17. März 2012 um 13:08 Uhr
Sie können auch die gesamte Sequenz “Verstauen, anderen Zweig auschecken, ziehen, zum vorherigen Zweig zurückkehren, Stash anwenden” automatisieren. So finden Sie heraus, in welchem Zweig Sie sich gerade befinden: $ if name=$(git symbolic-ref -q HEAD); then ... gefolgt von einer Überprüfung für $name Form haben refs/heads/* (und Abstreifen der Refs/Köpfe/ Teil). Siehe auch stackoverflow.com/questions/9752619/get-pretty-git-rev-name. Achten Sie jedoch auf eine fehlgeschlagene Zusammenführung!
– Torek
18. März 2012 um 1:41 Uhr
pkamb
Ich habe angefangen, github zu verwenden hub sync Helfer, um diesen Prozess zu automatisieren, anstatt sich darauf zu verlassen, einzelne Branches abzurufen, die sich zwischen den verschiedenen Repos ändern, an denen Sie arbeiten:
hub ist eine Erweiterung für Befehlszeilen-Git, mit der Sie alltägliche GitHub-Aufgaben erledigen können, ohne das Terminal verlassen zu müssen. https://hub.github.com/
$ hub sync
Wenn der lokale Zweig veraltet ist, spulen Sie ihn vor;
Wenn der lokale Zweig ungepushte Arbeit enthält, warnen Sie davor;
Wenn der Zweig zusammengeführt erscheint und sein Upstream-Zweig gelöscht wurde, löschen Sie ihn.
Betrieb hub sync sicher aktualisiert alles Ihrer lokalen Branches auf die Version auf der Fernbedienung.
10138100cookie-checkWie zieht man in den Not-the-current-Zweig?yes
Ich habe die Antwort gefunden, die für mich in einem anderen Stackoverflow-Beitrag funktioniert hat: stackoverflow.com/questions/3216360/… Grundsätzlich:
git fetch <remote> <srcBranch>:<destBranch>
– Koralle
10. September 2014 um 22:51 Uhr
Mögliches Duplikat von Merge, update, and pull Git branchs without using checkouts
– pkamb
10. August 2017 um 20:26 Uhr