2012-05-11 14 views
6

Ich habe in verschiedene Arten der Bereitstellung von Websites suchen git verwenden und fanden die folgende Anleitung:git implementieren mit Submodule

http://42pixels.com/blog/quick-and-dirty-git-deployment

ich die Ideen in diesem Tutorial vorgestellt mögen, und wäre daran interessiert, auf Verwenden Sie es für meine Websites, nur scheint es keine Submodule zu unterstützen.

Gibt es trotzdem die Möglichkeit das zu ändern, so dass auch Submodule nach Bedarf eingezogen und aktualisiert werden?

Vielen Dank.

UPDATE

Ich habe für die letzten paar Stunden an diesem Problem gearbeitet, und ich scheinen Fortschritte zu machen, aber ich kann immer noch nicht bekommen es funktioniert.

Ich habe zu diesem Tutorial gewechselt: http://toroid.org/ams/git-website-howto (das ist meistens das gleiche, nur ein paar kleine Änderungen), und nachdem ich einige Ratschläge hier gefunden habe: https://stackoverflow.com/a/6636509/1049688 Ich habe am Ende mit einer Post-Receive-Datei, die aussieht dies:

#!/bin/sh 

export GIT_WORK_TREE=/srv/www/limeblast.co.uk/htdocs_test 
export GIT_DIR=/srv/www/limeblast.co.uk/.git 
cd $GIT_WORK_TREE 

git checkout -f master 
git submodule init 
git submodule update 

all dies scheint in der Theorie gut, und es scheint, dass die Submodul Befehle ausgeführt werden, aber ich bin immer folgende Fehlermeldungen zurück:

remote: Submodul ‚Wordpress‘ (git: //github.com/WordPress/WordPress.git) registriert für Pfad 'wordpress' remote: Submodul 'wp-content/themes/limeblastevolution/inc/cssCrush' (git: //github.com/peteboere/css-crush.git) registriert für den Pfad 'wp-content/themes/limeblastevolution/inc/cssCrush ' remote: fatal: funktionierender Baum' /srv/www/limeblast.co.uk/htdocs_test 'existiert bereits. remote: Clone von 'git: //github.com/WordPress/WordPress.git' in Submodul Pfad 'Wordpress' failed

Irgendwelche Ideen? Vielen Dank.

Antwort

6

Sie könnten Erfolg mit git-deploy haben.

Aber wenn das zu viel auf Rails fokussiert ist oder wenn Sie aus anderen Gründen nicht oder wird es hier nicht verwenden, ist, wie in einem post-commit Haken ein Submodul Update zu erzwingen:

git submodule init && git submodule sync && git submodule update 

Sie müssen führe das auf dem Server aus; also am besten, es zu Ihrem hooks/post-receive Skript hinzuzufügen. Es ist einfach BASH oder SH, nebenbei.

+2

Vielen Dank für Ihre Hilfe. Ich habe diese Zeile zu meiner Post-Receive-Datei hinzugefügt, aber nach dem anfänglichen Upload und Checkout (die alle gut zu funktionieren scheinen) erhalte ich die Fehlermeldung "remote: Sie müssen diesen Befehl aus dem Toplevel des Arbeitsbaums ausführen. " in Bezug auf das Submodul Zeug. Irgendwelche Ideen? Prost. –

Verwandte Themen