Wie kann ich einen bestimmten Zweig von Git auf meinen Server pushen?
Lesezeit: 3 Minuten
BryanWheelock
Ich arbeite daran, eine Django-App bereitzustellen. Die App basiert auf einem Github OS-Projekt. Ich habe dies lokal als Master-Zweig gespeichert.
$ git branch
* master
customized - customized with local dev settings
webfaction_customized - with production server settings
Die Anpassungen für dieses Projekt werden in 2 separaten Zweigen gespeichert.
Mein Plan war, meine Anpassung lokal in „customized“ durchzuführen und diese Änderungen dann in „webfaction_customized“ zusammenzuführen.
Dann pushen Sie diese Änderungen in ein Bare-Repository auf dem production_server: Ich würde dann dieses Bare-Repository auf dem production_server klonen, die Einstellungen im geklonten Repository ändern und den fcgi-Prozess neu starten.
Das erste Problem war, dass ich dies fand, wenn ich versuchte, einen Branch auf den Server zu pushen, der nicht Master war, ich konnte nicht aus dem Bare-Repository klonen.
Also habe ich versucht, den Master-Branch auf den Server zu pushen.
git push webfaction_server master
Aber jetzt stelle ich fest, dass keiner meiner Zweige hochgeladen wird.
Gibt es eine Möglichkeit, einen bestimmten Zweig in ein Bare-Repository zu verschieben und diesen Zweig zu klonen?
ODER
Muss ich mein Projekt so umstrukturieren, dass der Master-Branch meine Anpassungen ist und das Github-Projekt in einem Github-Branch wäre?
Gibt es Fehlermeldungen? Sie sagten, Sie könnten das Bare-Repository nicht klonen, wenn Sie einen Nicht-Master-Zweig pushen. Was war der Fehler? Und gibt es einen Fehler, wenn Sie den Master-Branch pushen?
– jonescb
22. Dezember 2009 um 18:37 Uhr
Ist ‚webfaction_server‘ tatsächlich als Remote konfiguriert? Was sagt ‘git remote show’?
– ebneter
22. Dezember 2009 um 19:10 Uhr
Dies ist der Fehler, wenn Sie versuchen, eine Nicht-Master-Zweigwarnung zu klonen: remote HEAD verweist auf nicht vorhandene Referenz, Auschecken nicht möglich.
– BryanWheelock
22. Dezember 2009 um 19:37 Uhr
Askilondz
Sie würden einfach Folgendes tun:
git push origin webfaction_customized
Wobei origin Ihr Remote-Name und webfaction_customized Ihr benutzerdefinierter Branch ist.
Wenn Sie also am Master-Branch arbeiten, pushen Sie über:
git push origin master
Sie würden einfach Folgendes tun:
git push origin localBranchName:remoteBranchName
Antony Hatchkins
Die Nachricht Warning: Remote HEAD refers to nonexistent ref, unable to checkout. teilt Ihnen nur mit, dass der HEAD-Link nicht existiert und Git daher nicht weiß, welche Revision in Ihr lokales Arbeitsverzeichnis ausgecheckt werden soll.
Die Chancen stehen gut, dass die Zweige auf production_server selbst korrekt erstellt werden. Mach einfach ein git checkout <whatever-branch-you-want> und fang an zu hacken.
Wenn das Problem dadurch nicht behoben wird, fügen Sie hier die Ausgabe von ein git branch -a und cat .git/config Führen Sie beide Repos aus.
@tashuhka behoben, danke. Nein, für mich ist es nur ein Alias für ‘git branch’.
– Antony Hatchkins
19. Dezember 2016 um 11:43 Uhr
Ihr Push-Befehl scheint richtig zu sein, vorausgesetzt webfaction_server ist der Name von a Fernbedienung und nicht nur die Serveradresse. Laufen git help remote um mehr über das Pushen und Ziehen zu/von mehreren Fernbedienungen zu erfahren.
Egon Willighagen
Möglicherweise müssen Sie die Serverinformationen mit aktualisieren git-update-server-info. Dieses Tool aktualisiert die HEAD-Informationen auf dem Server mit den letzten Commit-Hashes, aktualisiert alte Branches und macht neue Branches sichtbar. Insbesondere aktualisiert es die Infos/Referenzen Datei in Ihrem Git-Repository. Sie müssen dies auf dem Server ausführen, daher könnte so etwas wie das Folgende nützlich sein:
Gibt es Fehlermeldungen? Sie sagten, Sie könnten das Bare-Repository nicht klonen, wenn Sie einen Nicht-Master-Zweig pushen. Was war der Fehler? Und gibt es einen Fehler, wenn Sie den Master-Branch pushen?
– jonescb
22. Dezember 2009 um 18:37 Uhr
Ist ‚webfaction_server‘ tatsächlich als Remote konfiguriert? Was sagt ‘git remote show’?
– ebneter
22. Dezember 2009 um 19:10 Uhr
Dies ist der Fehler, wenn Sie versuchen, eine Nicht-Master-Zweigwarnung zu klonen: remote HEAD verweist auf nicht vorhandene Referenz, Auschecken nicht möglich.
– BryanWheelock
22. Dezember 2009 um 19:37 Uhr