Wie schiebe ich einen neuen lokalen Zweig in ein entferntes Git-Repository und verfolge ihn auch?
Ich möchte Folgendes tun können:
-
Eine lokale Verzweigung auf der Grundlage einer anderen (entfernten oder lokalen) Verzweigung erstellen (über
git branch
odergit checkout -b
) -
Verschieben Sie den lokalen Zweig in das entfernte Repository (veröffentlichen), aber machen Sie ihn nachverfolgbar, damit
git pull
undgit push
sofort funktionieren.
Wie mache ich das?
Ich weiß von --set-upstream
in Git 1.7, aber das ist eine Aktion nach der Erstellung. Ich möchte eine Möglichkeit finden, eine ähnliche Änderung vorzunehmen, wenn ich den Zweig in das entfernte Repository verschiebe.
4141
3
Vor der Einführung von
git push -u
gab es keinegit push
Option, um das zu erreichen, was man wollte. Sie mussten neue Konfigurationsanweisungen hinzufügen.Wenn Sie einen neuen Zweig erstellen, indem Sie:
Sie können den Befehl
git config
verwenden, um die direkte Bearbeitung der Datei.git/config
zu vermeiden.Oder Sie können die Datei
.git/config
manuell bearbeiten, um diesem Zweig Tracking-Informationen zuzuweisen.Ich nehme an, dass Sie bereits ein Projekt wie geklont haben:
Dann erstellen Sie in Ihrer lokalen Kopie einen neuen Zweig und checken ihn aus:
Angenommen, Sie haben auf Ihrem Server ein "git bare --init" ausgeführt und die Datei myapp.git erstellt, dann sollten Sie:
Danach sollten die Benutzer in der Lage sein
Hinweis: Ich gehe davon aus, dass Ihr Server in Betrieb ist und läuft. Wenn das nicht der Fall ist, wird es nicht funktionieren. Eine gute Anleitung finden Sie hier.
Hinzufügen
Fügen Sie einen entfernten Zweig hinzu:
Prüfen Sie, ob alles in Ordnung ist (Ursprung holen und entfernte Zweige auflisten):
Erstellen Sie einen lokalen Zweig und verfolgen Sie den entfernten Zweig:
Aktualisieren Sie alles:
edit Veraltet, einfach
git push -u origin $BRANCHNAME
verwendenVerwenden Sie
git publish-branch
aus Williams verschiedene Git-Werkzeuge (gitorious repo und clone).OK, kein Ruby, also - ignorieren Sie die Sicherheitsvorkehrungen! - nehmen Sie die letzten drei Zeilen des Skripts und erstellen Sie ein Bash-Skript,
git-publish-branch
:Führen Sie dann
git-publish-branch REMOTENAME BRANCHNAME
aus, wobei REMOTENAME in der Regel origin ist (Sie können das Skript ändern, um origin als Standard zu nehmen, etc...)