Wie füge ich den aktuellen Zweig in einen anderen Zweig ein?
Habe ich zwei Zweige -, master-und dev. Ich arbeite immer an dev und nur check code in den master branch, sobald es genehmigt worden für den Einsatz in Produktionsumgebungen. Wenn ich das mache, so habe ich Folgendes zu tun:
git checkout master
git merge dev
git checkout dev
Das ist ja sehr ausführlich, und da ich es Häufig, würde ich gerne minimieren. Gibt es ein git-Befehl kann ich verwenden für den Seriendruck aus meinen aktuellen branch dev zu dem anderen Zweig master, ohne zur Kasse die master-Zweig zuerst? Etwas, das vielleicht wie:
git merge dev to master
wäre genial. Ich schaute durch die git-Dokumentation und nicht alles sehen.
InformationsquelleAutor der Frage Chris | 2010-09-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
1. Hinzufügen eines remote-alias, die in Ihrem lokalen repository, ex:
(Oder auf windows
git remote add self C:\path\to\your\repository
)2. Push-to-self remote, ex:
InformationsquelleAutor der Antwort zerome
Den aktuell höchsten-stimmten Antwort von @zerome ist gut, aber ein bisschen unnötig ausführlich.
In der base von Ihrem git-repo können Sie genau dies tun:
git push . dev:master
Eine verallgemeinerte Lösung, die funktionieren würde, irgendwo im Baum wäre:
InformationsquelleAutor der Antwort Kevin Lyda
Ihre beste Wette wäre, um nur ein alias verwenden, in Ihrem globalen gitconfig (
~/.gitconfig
):so, dass Sie rufen Sie es aus einem repository als
InformationsquelleAutor der Antwort Cascabel
Einer kleinen Modifikation von Jefromi alias nicht erforderlich, dass Sie geben in den aktuellen Zweig.
Also benutzen Sie es wie:
git merge-to dev
.Dadurch wird die Umstellung auf die
dev
branch, merge-es mit STROM-und dann schalten Sie zurück.Zum Beispiel, vorausgesetzt, Sie sind auf
master
Zweig, es wird Zusammenführen der master in dev, und Sie werden immer noch auf dem master.Es geht definitiv um meine dotfiles 🙂
InformationsquelleAutor der Antwort Dmytrii Nagirniak
Dies ist ein Alter, aber...
Kombination der Lösungen von @kevin-lyda und @dmytrii-nagirniak oben. dieser alias verschmilzt aktuellen branch in der angegebenen Filiale. Es verwendet die Fernbedienungen Methode mit und nutzt git-Befehle aus, um den Kontext.
Verwendet werden, wie:
InformationsquelleAutor der Antwort tField
Eine Menge Zeit, Sie kommen aus der Branche, die Sie Zusammenführen möchten, die current-Zweig in die. In diesem Fall können Sie tun:
git co - && git merge @{ -1}
Beispiel:
InformationsquelleAutor der Antwort Tieme
Zusammenführen der current-Zweig in einen anderen Zweig ohne Check-out die andere Zweig:
Fast-forward-merge
Dies ist wirklich einfach. Per definition ist eine fast-forward-merge bedeutet einfach, den Zweig Zeiger bewegt sich voran in die commit-tree. So alle Sie tun müssen, ist nur simulieren:
Tipp: Wenn Sie eine
git fetch
und Sie haben neue commits inorigin/master
können Sie diemaster
Zweig ohne Check-out mit:Merge via merge-commit
Dies ist nicht immer möglich. Erstellen Sie ein merge-commit, müssen Sie eine merge-operation. Und eine merge-operation haben, sollten Sie begeht, in den anderen Zweig, die nicht in der aktuellen Filiale.
Wenn Sie commits in das
master
Zweig, die nicht indev
Zweig, Sie können:Erklärung:
Merge
master
in die temporäre Niederlassung und Start-commit message-editor. Wenn Sie möchten, dass der merge-commit zu AussehenSie hatten zusammengeführt, diedev
Filiale inmaster
Bearbeiten von::
Tipp: können Sie
-m "Merge branch 'dev'"
statt-e
schneller zu sein.master
Zweig-pointer zu Punkt, um den merge-commit.dev
Zweig.Diese noch berührt Ihre arbeiten Baum, aber minimal so. Es spielt keine Rolle zurück, die der Baum den ganzen Weg zum Zustand der ursprünglichen
master
nur zu bringen, die sich in der Entwicklung ändert sich wieder einmal. Einige möglicherweise nicht wichtig, aber für andere kann es wichtig sein.InformationsquelleAutor der Antwort ADTC