Ich möchte das Git-Standardziel für den Remote-Zweig ändern, damit ich es einfach tun kann
git push
Anstatt:
git push upstream
Derzeit ist dies auf die Ursprungsfernbedienung eingestellt, und ich möchte sie auf eine andere Fernbedienung einstellen.
Ich habe versucht, die ursprüngliche (geklonte) Fernbedienung zu entfernen
git remote rm origin
Welches hat die ursprüngliche Fernbedienung entfernt. Löst das git push
Problem aber nicht . Ich bekomme immer noch:
Schwerwiegend: Kein konfiguriertes Push-Ziel. Geben Sie entweder die URL über die
Befehlszeile an oder konfigurieren Sie ein Remote-Repository mit ...
Ich habe auch versucht zu spielen mit:
git remote set-url --push myfork origin
und andere Optionen, aber keine scheinen zu funktionieren (vielleicht, weil ich die Ursprungsfernbedienung zu früh gelöscht habe?)
Nach der Antwort hier habe ich versucht zu ändern:
git config push.default upstream (or matching)
aber keiner hat funktioniert.
quelle
git push -u <remote_name> <local_branch_name>:<corresponding_remote_branch_name>
.git push -u origin master:master
.git push
die Remote-Verzweigung der aktuellen lokalen Verzweigung zu verschieben? Ich meine, dies bedeutet, dass ich diesen Befehl für jeden Zweig ausführen muss. Richtig? Kann ich nicht einfach eine Ersteinrichtung für das gesamte Repo vornehmen? @ MarcoLazzerigit push -u origin master
ausreichend? Illustrieren Sie nur die vollständige Syntax?Verwenden Sie den
git branch
Befehl mit dem Upstream-Konfigurationsflag , um zu ändern, welche Upstream-Fernbedienung mit Ihrer Zweigstelle "verbunden" ist .Stellen Sie sicher, dass die Fernbedienung zuerst vorhanden ist:
git remote -vv
Stellen Sie die bevorzugte Fernbedienung für den aktuellen (ausgecheckten) Zweig ein:
git branch --set-upstream-to <remote-name>
Überprüfen Sie, ob der Zweig mit der richtigen Upstream-Fernbedienung eingerichtet ist:
git branch -vv
quelle
git branch --set-upstream-to myfork
Ich habe es gerade versucht und habe einen Fehler erhalten:> Fehler: Unbekannte Option `set-upstream-to 'Ich führe git 1.7.9 ausgit remote set-url origin PATH_TO_REMOTE
)git branch -u <remotename>/<branch>
arbeitete für mich. Der Befehl wurde ausgeführt, wobei der lokale Zweig von Interesse ausgecheckt war. Siehe 'Tracking Branches' in git-scm.com/book/it/v2/Git-Branching-Remote-Branchesgit remote -v
odergit remote --verbose
. Das-vv
zusätzliche v des ist redundant.Arbeiten mit Git 2.3.2 ...
Nun
status
,push
undpull
sind zu spitzmyfork
Fernquelle
pull
.Mit diesem Befehl können Sie die Standardfernbedienung für Zweige auf einmal ganz einfach ändern
quelle
Wenn Sie dies getan haben
git push origin -u localBranchName:remoteBranchName
und nacheinandergit push
Befehle erhalten, werden Fehler angezeigt, bei denen der Ursprung nicht vorhanden ist. Führen Sie dann die folgenden Schritte aus:git remote -v
Überprüfen Sie, ob es eine Fernbedienung gibt, die mir egal ist. Löschen Sie sie mit
git remote remove 'name'
git config --edit
Suchen Sie nach möglichen Anzeichen einer alten / nicht vorhandenen Fernbedienung. Suchen Sie nach
pushdefault
:oldremote
Wert aktualisieren und speichern.git push
sollte jetzt funktionieren.quelle
-u
bei der Verwendunggit push
auf einer anderen Fernbedienung aufgrund des Muskelgedächtnisses hinzuzufügen . Dadurch wird die angegebene Fernbedienung zur Standardeinstellung. Durch Zurücksetzengit config --edit
(oder erneutes Drücken und Einstellen einer neuen Fernbedienung) wurde das Problem behoben.Nur eine Klarstellung (mit Git Version 1.7.9.5 unter Ubuntu 12.04):
Git fügt Fernbedienungen hinzu / entfernt sie. Dies sind Remote-Instanzen von Git mit einem angeschlossenen Server.
Sie können dann das Git-Repository wie folgt abrufen:
Es scheint, dass dadurch ein Zweig mit dem Namen "myremote" erstellt wird, die Fernbedienung für den Zweig wird jedoch nicht automatisch festgelegt. Dazu müssen Sie Folgendes tun:
Stellen Sie zunächst sicher, dass Sie dieses Problem haben, z
Sie sollten etwas sehen wie:
Wenn Sie sehen
branch.myremote.remote=.
, sollten Sie fortfahren:Sie sollten jetzt mit dem Remote-Repository auf dem neuesten Stand sein und Ihre Pulls / Pushs sollten an die entsprechende Remote gebunden sein. Auf diese Weise können Sie die Fernbedienungen pro Zweig wechseln . [Anmerkung 1]
Gemäß einer offiziellen Git-Konfigurationsdokumentation können Sie einen Standard festlegen Push-Zweig (suchen Sie einfach auf dieser Seite nach remote.pushdefault). Beachten Sie jedoch, dass dies keine Auswirkungen auf bereits vorhandene Repositorys / Zweige hat, sodass dies nur funktioniert für neue Repositories / Filialen. Sie sollten sich daran erinnern, dass
--global
benutzerspezifische Repository-Standardeinstellungen (~ / .gitconfig),--system
systemweite Repository-Standardeinstellungen (/ etc / gitconfig) und kein Flag Konfigurationsoptionen für das aktuelle Repository (./.gitconfig) festlegen.Auch ist zu beachten, dass die push.default Konfigurationsoption für die Konfiguration ist ref-spec Verhalten, nicht Remote- Verhaltens dient.
[1]:
git branch --set-upstream myotherremote
würde normalerweise hier funktionieren, aber git wird sich beschweren, dass es keinen Zweig als seine eigene Fernbedienung festlegt, wenngit branch --set-upstream myremote
es verwendet wird. Ich glaube jedoch, dass dies ein falsches Verhalten ist.quelle
git config -l | grep myremote
können Sie einfach verwenden:git config --get branch.myremote.remote
--get
bestimmtes Verhalten vorausgesetzt. Ich stelle fest, dass es andere Möglichkeiten gibt, Upstreams einzurichten, aber dies bietet eine Möglichkeit, die Informationen zu finden, ohne sich nur auf Git-Tools zu verlassen richtig. Git ist nicht perfekt, es ist besser, die Daten zu verstehen, was es tut und dann zu hoffen, dass seine Aufrufe angemessen funktionieren.Es kann hilfreich sein, einen Blick in
.git/config
Ihr Repo zu werfen. Dort werden alle Fernbedienungen und auch die Standardfernbedienung für jeden Zweig aufgelistetz.B.
Sie können in dieser Datei manuelle Änderungen vornehmen, um eine unerwünschte Fernbedienung zu entfernen, oder die Standardfernbedienungen für die verschiedenen Zweige aktualisieren
quelle
Eine andere Technik, die ich gerade gefunden habe, um dieses Problem zu lösen (auch wenn ich zuerst den Ursprung gelöscht habe, was als Fehler erscheint), ist die direkte Manipulation der Git-Konfiguration:
quelle
git remote set-url origin PATH_TO_REMOTE
)Ganz einfach, und einige der großartigen Kommentare hier zusammen mit meinen eigenen Nachforschungen zusammenzuschustern.
Überprüfen Sie zunächst den lokalen Zweig, den Sie mit Ihrem Remote-Zweig verbinden möchten:
Nächster:
wo:
Sie sollten eine Nachricht erhalten:
quelle
In meinem Fall habe ich Folgendes behoben: * run
git config --edit
* In der Git-Konfigurationsdatei:quelle
git remote set-url --push origin
sollte funktionieren, wie Sie erwähnt haben, aber Sie müssen die URL anstelle eines alternativen Remote-Namens explizit angeben, zSie können bestätigen, ob dies funktioniert hat, indem Sie a
git remote -v
. Z.Bquelle