• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

git über SSH installieren

scbawik

Senior HTML'ler
Hallo!

Entweder bin ich gerade zu blöd um richtig zu googlen, verstehe etwas falsch, oder es ist wirklich so kompliziert:

Da ich mittlerweile alle Projekte auf bitbucket.org "hoste", suche ich nun nach einem einfachen, universellen Weg, meine Projekte auf unterschiedlichen Production Servern zu "deployen".

Alles was ich bisher gelesen habe, scheint mir aber recht aufwändig bzw. ganz individuell je nach Server. Ein Vorteil den ich mir durch git nämlich erhofft habe, ist die Zeitersparnis.

Bisher hatte ich nur mit bereits initialisierten repos zu tun die ich nur noch mit
Code:
git pull origin <branch>
ansteuern musste.

Ich suche jetzt aber nach einem Weg, wie ich diese Funktionalität vorbereite, ohne mich lange mit dem Server auseinandersetzen zu müssen.

Kann ich das überhaupt selbst installieren muss ich mich da jeweils mit dem Host in Verbindung setzen?

Danke!
 
Werbung:
Der Vorteil von Git liegt in der Versionskontrolle und den Pull Requests.

Frage ist, ob du nun pushen oder pullen willst. Für letzteres reicht ein SSH-Zugang zum Server, und die Installation von Git unter Linux oder OS X ist eine Sache von wenigen Minuten. Du kannst aber ebenso gut deinen lokalen Branch per FileZilla übertragen. ;)

Ein echtes Deployment von Github Repos kenne ich bisher nur auf AWS, und da hatte jemand anders das Script geschrieben. Das ist aber sicherlich aufwändiger zu installieren.
 
Moin,
du brauchst in deinem bare-repo einen post-receive hook der das deployment übernimmt.
Inwieweit das bei Bitbucket möglich ist, weiß ich nicht.

Such mal danach.

MfG
 
Werbung:
Der Vorteil von Git liegt in der Versionskontrolle und den Pull Requests.

Das ist mir schon klar, habe die Zeitersparnis bei größeren Projekten eher als netten Nebeneffekt kennengelernt.

Frage ist, ob du nun pushen oder pullen willst. Für letzteres reicht ein SSH-Zugang zum Server, und die Installation von Git unter Linux oder OS X ist eine Sache von wenigen Minuten. Du kannst aber ebenso gut deinen lokalen Branch per FileZilla übertragen. ;)

Ein echtes Deployment von Github Repos kenne ich bisher nur auf AWS, und da hatte jemand anders das Script geschrieben. Das ist aber sicherlich aufwändiger zu installieren.

Also eigentlich will ich nur den aktuellen Stand des Master Branchs pullen, Entwicklung findet nur lokal statt.
Lokal (2x OS X) hatte ich keine Probleme das Zeugs zu installieren - ist wirklich eine Sache von Sekunden.
Wenn ich mich allerdings richtig erinnere, hatte ich da eine grafische Oberfläche für die Installation und musste eigentlich nur "weiter" "weiter" "weiter" drücken.
Wie ich das allerdings per SSH auf Linux mache, ist mir ein Rätsel. Mittlerweile bezweifle ich das es überhaupt per SSH möglich ist, da alle Versuche mit "Command not found" usw. scheiterten.

Klar könnte ich die Dateien auch per FTP übertragen - allerdings ist die Gefahr dann gegeben, dass ich die Production Konfiguration mit meiner Development Konfiguration überschreibe, unnötige Dateien auf dem Production Server publiziere, Abhängigkeiten zu anderen Dateien vergesse etc.
Mit Git kann ich mir sicher sein, dass ich eine saubere Installation erhalte.

Letztlich möchte ich nur folgendes machen müssen:
Code:
git init
git remote add origin <remote>
git pull origin master
Konfiguration erstellen - fertig.

Wenn es dann mal eine Änderung gibt:
Code:
git pull origin master

Moin,
du brauchst in deinem bare-repo einen post-receive hook der das deployment übernimmt.
Inwieweit das bei Bitbucket möglich ist, weiß ich nicht.

Such mal danach.

MfG

Danke, werde gleich mal danach googlen.
 
Zuletzt bearbeitet:
Ok, kann ich verstehen. Aber ich würde dir trotzdem empfehlen, innerhalb deiner Entwicklungsumgebung einen grafischen Client für Git zu installieren anstatt nur auf der Konsole zu arbeiten. Damit minimiert sich das Risko, einen falschen Branch zu deployen. Man hat immer alles im Blick: anstehende pull/pushs von remote, aktueller Branch, veränderte, gelöschte und hinzu gekommene Dateien auf local. Ich verwende unter OS X Sourcetree als Client.
 
Ok, kann ich verstehen. Aber ich würde dir trotzdem empfehlen, innerhalb deiner Entwicklungsumgebung einen grafischen Client für Git zu installieren anstatt nur auf der Konsole zu arbeiten. Damit minimiert sich das Risko, einen falschen Branch zu deployen. Man hat immer alles im Blick: anstehende pull/pushs von remote, aktueller Branch, veränderte, gelöschte und hinzu gekommene Dateien auf local. Ich verwende unter OS X Sourcetree als Client.

Ja, habe ich schon, verwende auch SourceTree :)
Mit dem lokalen Benutzen von Git habe ich keine Probleme.

Mein Problem ist nur, wie ich dem Webspace (ob nun ein Shared Hosting oder ein richtiger Webserver) den "git"-command beibringe.
 
Werbung:
Was machst du, wenn ein Kunde nur über einfachen Webspace ohne SSH-Zugang verfügt? ;)

Wenn dein Projekt fertig ist, wechselst du zum Master, mergest den Development dort hinein und kannst dann Filezilla verwenden. Source Tree merkt schon, falls Dateien noch nicht committed wurden oder es andere Probleme gibt.
 
Was machst du, wenn ein Kunde nur über einfachen Webspace ohne SSH-Zugang verfügt? ;)

Einen FTP-, MySQL- und SSH-Zugang sowie bestimmte PHP-Versionen (>5.3) habe ich als Systemvoraussetzungen geschaffen. Sollte der Webspace das nicht bieten, muss sich der Kunde eben darum kümmern.
Wenn aufgrund der nicht erfüllten Voraussetzungen meine Software nicht kompatibel ist, liegt das somit nicht in meiner Verantwortung.
Daher kann ich davon ausgehen, dass der Webspace einen SSH-Zugang hat. Wenn nicht, habe ich ja kein Problem mit FTP, es ist nur etwas umständlicher und deshalb bei vielen Release-Zyklen auch aufwändiger.
Es geht mir nicht unbedingt um Websites, die man einmal hochlädt und dann nie wieder erweitert. Sondern um Projekte die sich über Jahre hinweg weiterentwickeln. Für kleine Projekte möchte ich das aber letztlich auch anwenden.

Wenn dein Projekt fertig ist, wechselst du zum Master, mergest den Development dort hinein und kannst dann Filezilla verwenden. Source Tree merkt schon, falls Dateien noch nicht committed wurden oder es andere Probleme gibt.

Irgendwie werde ich das Gefühl nicht los, dass wir total aneinander vorbei reden :p

Mergen, branchen, committen, push, pull, fetch,… alles kein Problem für mich.

Die direkte Übertragung vom bitbucket.org-Repository zum example.com-Webserver ist mein Problem. (Ohne Zwischenstop auf meinem lokalen Rechner)

Da ich aber später sowieso mit dem Support meines Hosts telefonieren muss, frag ich da mal nach.
 
Zuletzt bearbeitet:
Da ich aber später sowieso mit dem Support meines Hosts telefonieren muss, frag ich da mal nach.

Was hat er denn gesagt? Würde mich auch interessieren. Bei meinen Freelancer-Jobs arbeite ich bisher nur mit lokalen Branches und Mozilla.
 
Werbung:
Ich verwende git auch nur mehr oder weniger als "Anwender", weiß daher auch nicht aus dem Stehgreif, wie man git auf einem remote Server installiert. Die Frage ist natürlich auch, ob dir das als Kunde des Hosting-Tarifes XY überhaupt erlaubt ist, oder ob das der Hoster selbst machen muss.

ssh und git sind eigentlich auch bei uns Mindestvorraussetzungen, die wir an ein Hosting stellen. Über FTP zu deployen ist langsam, nervend und vor allem furchtbar fehleranfällig. Vor allem weiß nach 4 Wochen kein Mensch mehr, ob nicht doch was auf dem Live-System geändert wurde bzw. ob jede Änderung auch wirklich im git nachgeführt wurde.
 
Zurück
Oben