2009-09-24 11 views
7

Ich habe mit git auf meiner lokalen Maschine herum gespielt und alles macht Sinn, bis es zu einem Remote-und mehrere Entwickler kommt ich verwirrt.Git Workflow für Web-Entwicklung

Mein Ziel ist es, eine "halböffentlichen" Dev-Site/s zu haben, an der eine Gruppe von 4 Personen arbeiten und Änderungen an der Live-Site vornehmen kann, sobald sie fertig sind. Wir benötigen die Dev-Site/s auf dem öffentlichen Webserver, damit wir Genehmigungen erhalten können, bevor Änderungen live übertragen werden. Sicherheit ist kein großes Problem, deshalb plane ich einfach einen einfachen .htaccess zu verwenden, um den Zugriff zu beschränken. Nicht alle Änderungen müssen genehmigt werden, aber ich möchte, dass die Dev-Sites auf dem neuesten Stand bleiben.

Die große Herausforderung besteht darin, dass 2 von uns 4 Designer sind und der gesamte Prozess der Veränderung und des Push-Ups muss schnell und einfach sein. Sie werden verwendet, um nur Änderungen an der Site vorzunehmen. Ich möchte nicht einen 10-Schritt-Prozess machen, um das zu tun, was sie gerade tun, mit einer Tastenkombination.

Irgendwelche Vorschläge?

+0

Capistrano ist nicht unbedingt exklusiv für Ruby on Rails; Es kann für die Zusammenarbeit mit anderen Projekten konfiguriert werden. Google etwas nach dem Vorbild von "Capistrano for PHP", um loszulegen. Es gibt auch Ruby Gems wie railsless-deploy, die Capistrano automatisch entsprechend konfigurieren. Nebenbei bemerkt ... Dies ist als Antwort auf einen Kommentar zu einer anderen Antwort oben. Tut mir leid, es auf diese Weise zu tun, aber ich kann noch keine Kommentare posten. Ich hoffe, Sie werden mir alle vergeben, da ich dachte, dass diese Information es wert ist, geteilt zu werden. Prost. – Synexis

Antwort

4

Check out:

Dieser jeden vertraut mit der Verwendung von git erhalten soll, und gibt Ihnen ein Werkzeug für das effiziente Ausstoßen von Änderungen.

+0

Also, um GitX zu verwenden würde jeder eine lokale Kopie der gesamten Website benötigen? Ich möchte das möglichst vermeiden. Wir haben ein Verzeichnis mit 4 Gb PDFs, das sich selten ändert. – respectTheCode

+0

Leider unterstützt Git (unabhängig davon, ob Sie GitX verwenden oder nicht) keine Teilüberprüfungen. Dies könnte in Arbeit sein. Die Antwort, die Sie jetzt hören würden, ist, dass Ihre 4 GB PDFs nicht in das (gleiche) Repository eingecheckt werden sollten. –

+1

Wir verwenden Git jetzt seit ein paar Monaten und es funktioniert super. Jeder Benutzer hat XAMPP und eine vollständige Kopie der Site. Wir haben dann einen Server in unserem Büro, von dem wir alle drücken und ziehen.Es verfügt über ein Post-Update-Skript, das die Änderungen in den Master-Zweig auf den Webserver hochlädt. Wir verwenden andere Zweige für unsere Dev-Server. Es ist nicht perfekt, aber es funktioniert ziemlich gut. – respectTheCode

3

Bevor ich weiter gehe, werde ich ganz klar sagen, dass Git nicht ein Web-Deployment-Tool ist. Capistrano und Freunde sind die überlegene Lösung und obligatorisch für komplexe Systeme. Wenn Sie jedoch über eine einfache Site verfügen und sich nicht um atomare Bereitstellungen, Abhängigkeiten, erzwungene Prozesse (das Sicherstellen, dass alle Änderungen QAed waren usw.) und Ähnliches kümmern, können Sie manchmal mit einem Post-Receive-Hook durchkommen, der a Zwangs-Git-Checkout. Dann würde der Prozess der Bereitstellung auf einer Website zu einem speziellen Repository verschoben werden. Sie können entweder ein Repository für QA und eines für die Produktion haben, oder den Haken haben, der den Zweig überprüft, an den verschoben wird, und es herausfinden, was auf diese Weise aktualisiert wird.

Weitere Informationen zu einem einfachen Post-Receive-Hook für den automatischen Checkout finden Sie unter http://toroid.org/ams/git-website-howto.

Natürlich können Sie auch den Post-Receive-Hook-Aufruf ein aktuelles Web-Deployment-System aufrufen, um einige der oben genannten Probleme zu beheben.

+0

Wir haben keinen Überprüfungsprozess für Inhaltsänderungen, so dass diese Änderungen nur auf dem Master-Zweig vorgenommen werden. Alles andere bekommt seinen eigenen Zweig und wird zur Freigabe in den Master eingebunden. Wir haben mehrere dieser Feature-Zweige in VMs ausgecheckt, um sie im Verlauf des Projekts zu überprüfen. Es ist nicht perfekt, aber es funktioniert gut. Ich werde in Capistrano schauen, aber es klingt wie Overkill für das, was wir brauchen. – respectTheCode

+1

Sieht so aus, als wäre Capistrano eine spezielle Ruby on Rails-Lösung, so dass es nicht hilft, es sei denn, Sie verwenden Ruby on Rails. – respectTheCode

+0

Ich nahm an, dass du das Problem vor einigen Jahren gelöst hast. Ich habe nur Kommentare für andere gegeben, die dasselbe Problem untersuchen. Wenn Sie Einschränkungen nicht erwähnt haben, so dass keine der beiden Lösungen funktioniert, erläutern Sie bitte. Bitte, upvote, wenn dieser Beitrag nützlich war. –

Verwandte Themen