Wie kann ich einen bestimmten Zweig von Git auf meinen Server pushen?

Lesezeit: 3 Minuten

Benutzer-Avatar
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

Benutzer-Avatar
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

Benutzer-Avatar
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.

  • ich vermute git br ist ein bestimmter Befehl von github.com/larsbrinkhoff/git-scripts/blob/master/git-br

    – Taschuhka

    19. Dezember 2016 um 9:51 Uhr

  • @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.

Benutzer-Avatar
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:

ssh webserver "cd /path/to/your/repository.git/ && git-update-server-info"

Es könnte möglich sein, dieses Update auszulösen, möglicherweise mit einem Post-Commit-Hook, aber das habe ich noch nicht versucht.

  • Hallo Egon. Was macht update-server-info eigentlich? Kannst du es bitte ein bisschen erklären?

    – Alan Haggai Alavi

    23. Dezember 2009 um 11:11 Uhr

  • Hallo Egon. Was macht update-server-info eigentlich? Kannst du es bitte ein bisschen erklären?

    – Alan Haggai Alavi

    23. Dezember 2009 um 11:11 Uhr

1282420cookie-checkWie kann ich einen bestimmten Zweig von Git auf meinen Server pushen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy