Git-Push zu einem anderen Zweig mit einem anderen Namen

Ankit Raj Goyal 20 Juni 2023
  1. der git push-Befehl und seine reichhaltigen Optionen
  2. eine ordentliche Verknüpfung in git push, um den Parameter refspecs einmal zu setzen und viele Male zu verwenden
  3. Wann möchten wir Git auf einen anderen Branch pushen?
  4. Git Refspecs
  5. Ressourcen
Git-Push zu einem anderen Zweig mit einem anderen Namen

Der git push bietet eine Vielzahl von Optionen, mit denen Sie die volle Leistungsfähigkeit von Git nutzen können. Einer davon sind die Parameter source:destination refspecs.

Wir verwenden diese, um zu einem bestimmten Zweig mit einem Namen unserer Wahl zu git pushen. Gegen Ende werden wir einige Anwendungsfälle sehen, bei denen wir immense Gewinne in unserem Workflow erzielen, wenn wir einen neuen Branch git pushen und nicht in einen Branch mit demselben Namen wie unser Local.

der git push-Befehl und seine reichhaltigen Optionen

Git beschränkt uns nicht auf einen einfachen Push in eine Remote mit dem bloßen Befehl git push. Stattdessen bietet es uns mehrere leistungsstarke Optionen, mit denen wir unser gewünschtes Ergebnis erzielen können.

Zwei davon sind die Parameter [remote_repe] und [src:dst] refspecs.

Lassen Sie uns sehen, wie diese Parameter uns helfen, auf einen anderen Zweig zu git push.

git push [remote_repo] [refspecs]

Das [remote_repo] bezieht sich auf das entfernte Repository in unserem lokalen System. Meistens ist dieser Name Herkunft.

Die [refspecs] ist der interessante Parameterschlüssel zum git push auf einen bestimmten Branch. Wir werden uns gegen Ende dieses Beitrags ausführlich mit refspecs befassen.

Es hat die Form: src:dst, wobei sich src auf den lokalen Zweig bezieht, den wir pushen möchten. Das dst ist die Referenz (oder der Name) auf den Remote-Zweig, in den wir pushen möchten.

Er hat standardmäßig den gleichen Namen wie der src-Parameter, aber wir können uns für git push zu einem bestimmten Zweig entscheiden, indem wir ausdrücklich den dst-Wert angeben.

Wir richten zuerst ein lokales Repository ein und verknüpfen es mit einem Remote-Repository. Dann erstellen wir auch einen neuen Zweig in unserem lokalen Repository.

lokales Repo mit ungepushtem Zweig

remote ohne Feature-Zweig

Unser entferntes Repository hat den feature_branch nicht auf unserem lokalen.

Wir pushen nun den feature_branch auf einen anderen Branch mit neuem Namen.

git push origin feature_branch:teamX_featureY

git push to specific branch

Wir sehen jetzt, dass der feature_branch auf unserer Fernbedienung in einen neuen Branch mit einem anderen Namen verschoben wurde.

git push new branch to remote

Beachten Sie, dass Sie diese Argumente jedes Mal übergeben müssen, wenn Sie pushen; Andernfalls wird der Parameter dst standardmäßig auf den Namen des Zweigs in Ihrem lokalen Repository gesetzt. Git bietet uns jedoch eine nette Abkürzung, um uns die Mühe zu ersparen, diese wiederholt einzugeben.

eine ordentliche Verknüpfung in git push, um den Parameter refspecs einmal zu setzen und viele Male zu verwenden

In Git ist der Upstream-Name einer Verzweigung die Verzweigung, in die Sie sie immer verschieben. Sie können diesen Wert mit dem folgenden Befehl festlegen.

git branch --set-upstream-to <remote_branch>

Sie können diesen Befehl aber auch mit git push ausführen, indem Sie einfach das Flag -u übergeben.

git push -u origin local:different_remote

Wenn Sie dies tun, wird Ihr lokaler Zweig beim nächsten Push in den Zweig different_remote gepusht. Sie müssen es also nicht jedes Mal explizit benennen.

Push mit Upstream-Flag

Wir sehen diesen neuen Upstream-Zweig auch in unserem Remote-Repository.

remote mit neuem Upstream-Zweig

Sie müssen den Wert push.default in Ihrer config-Datei mit dem folgenden Befehl ändern.

git config push.default upstream

Wenn Sie nun second_feature pushen, ohne den Parameter dst zu erwähnen, pusht Git es automatisch in ein different_remote.

git push origin second_feature

git config remote pushdefault bearbeiten

Wann möchten wir Git auf einen anderen Branch pushen?

Einige Anwendungsfälle, in denen wir einen neuen Zweig git pushen möchten, sind:

  1. Angenommen, Sie entwickeln ein cooles Feature oder Modul und möchten es in mehr als ein Projekt einbringen, an dem Sie arbeiten. Sie könnten sogar eine einfache generische Funktion wie ein von Ihnen entworfenes Halloween-Menü lieben und würden es in vielen Ihrer Apps haben wollen.

    Sie müssten es in jedes Projekt mit einem anderen Namen schieben.

  2. Manchmal gibt es eine Diskrepanz zwischen den Benennungsschemata im zentralen (entfernten) Repository und Ihrem lokalen Setup. Dies gilt insbesondere, wenn Sie an mehreren Projekten mit großen Teams arbeiten.

    Der Befehl git push mit seinen refspecs-Optionen rettet Ihnen in solchen Fällen den Tag.

Lassen Sie uns schließlich, bevor wir uns verabschieden, tiefer in die refspecs eintauchen.

Git Refspecs

Git speichert intern Verweise auf alle Objekte in Ihrem Repository. Dadurch ist es einfach, schnell auf die verschiedenen Git-Objekte zuzugreifen, ohne immer kryptische SHA-Hashes zu verwenden.

In Git beziehen wir uns (Wortspiel beabsichtigt) auf diese Referenzen als refspecs.

Diese refspecs werden in speziellen Verzeichnissen in Ihrem Repository gespeichert.

  1. Das Verzeichnis refs/heads speichert die Verweise auf Objekte in Ihrem lokalen Repository.

    lokale Refs-Köpfe

  2. Die refs/remotes haben Verweise auf Ihre Remote-Repository-Git-Objekte.

    remote refs remotes

Ressourcen

  1. https://www.freecodecamp.org/news/git-push-to-remote-branch-how-to-push-a-local-branch-to-origin/
  2. https://github.com/jiffyclub/blog-posts/commit/4bf63cdafc9a3eb9602646ced972913ef73386bd
  3. https://davidwalsh.name/git-push-different-name
  4. https://stackoverflow.com/questions/36139275/git-pushing-to-remote-branch
  5. https://git-scm.com/docs/git-push

Verwandter Artikel - Git Push