Git: so verbinden Sie den lokalen branch mit dem remote-tracking automatisch ohne Holen
Vorstellen, ich habe mehrere branches: master, a, b, c ...
Nun bin ich im master-branch "git pull". Dieser holt alle änderungen vom remote-server in origin/master origin/a, Herkunft/b ... Branchen und verschmilzt AKTUELLEN branch (master) mit origin/master. Aber dann will ich zum Schalter, um Ein verzweigen und wieder Zusammenführen diese remote-änderungen aus remote-Zweig verfolgt, OHNE abrufen von änderungen erneut (wie Sie bereits in origin/einer Filiale).
Gibt es ein einfacher Weg, dies zu tun nicht, indem Sie genau angeben, remote-branch I Spur (d.h. automatisch) ?
- Ich bin mir ziemlich sicher die OP vermeiden will, dass explizit Namen den remote-branch, wie es möglich ist, mit
git pull
- git weiß, was der Zweig von fetch und merge. Das istgit merge origin/a
ist keine Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Glaube ich nicht, es ist ein built-in-Befehl für diesen. Allerdings könnte man etwas wie das hier tun:
Ich denke, ich habe behandelt meine bases ziemlich gut - es beendet sich mit Fehlerstatus, wenn in freistehenden LEITER Stand, oder wenn die aktuellen Zweig nicht haben eine tracking-branch. Es Standardwerte, die zu Ursprungs, wie die normalen git-transfer-Befehle. (Etwas seltsam passiert, wenn Sie versuchen, verwenden Sie es auf einem ast, das ist tracking etwas anderes als eine Niederlassung auf die Fernbedienung, also nicht von der form refs/heads/*, aber das scheint mir ziemlich unwahrscheinlich zu sein.) Scheint nicht so, es würde tatsächlich sparen Sie viel Zeit, aber es gibt Sie!
Wenn Sie wollen, es zu benutzen, nur speichern Sie es irgendwo und alias oder name it git-etwas und steckte es in Ihren PFAD.
merge.defaultupstream
die Ursachegit merge
(ohne Argumente) zu verschmelzen mit dem entsprechenden remote-tracking-branch - genau wie eingit pull
ohne Holen. Meine Vermutung wäre, dass es vielleicht in v1.7.5.Ich denke, man kann einfach die Kasse Ihren lokalen branch und merge von Ihrem lokalen Kopie der Ursprung/ein Zweig.
Etwas wie:
git pull
ist nichts mehr alsgit fetch
+git merge
. Mit dem parameter--rebase
Sie kann auch rebase und nicht Zusammenfallen, so können Sie einfach wechseln Sie zu der anderen branch und merge/rebase:oder:
Da es nicht irgendetwas anderes tun, die ich sogar aufgehört haben, ziehen Sie an alle. Ich habe gerade
git fetch
regelmässig, so kann ich das nachverfolgen der änderungen in anderen repositories einfach und danngit merge/rebase
Wann immer ich bereit bin.Dies wird check-out-tracking branches und merge in Ihre entsprechenden remote branches:
Wenn ein merge hat Konflikte, es wird zurückgespult mit
git reset
und Sie müssen es manuell zu tun.Ungetestet.
Können Sie auch ein oder mehrere Muster zu
git for-each-ref
zu beschränken, um einen bestimmten Zweig oder eine bestimmte Menge von Ihnen.git merge
weigert sich, zu versuchen, zu fusionieren, weil die Arbeit, die Struktur hat änderungen, diereset --hard
zerstören diese änderungen.reset --merge
wäre sicherer, aber noch nicht völlig sicher. (Und ich weiß, Sie haben eine Kasse gibt, aber mit lokalen änderungen, es würde entweder gescheitert oder Links im Ort, beim Umschalten Zweige - so oder so, es gibt immer noch lokale änderungen.)