2012-05-11 10 views
6

Szukałem na różne sposoby wdrażania witryn za pomocą git, a okazało się, że poniższy poradnik:git wdrożyć z submodules

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

Lubię idee przedstawione w niniejszym poradniku, i będzie zależało na używając go do moich stron, tylko nie obsługuje podmodułów.

Czy jest możliwe, że można to zmienić, aby moduły były również wciągane i aktualizowane w razie potrzeby?

Dziękuję.

UPDATE

pracuję nad tym problemem w ciągu ostatnich kilku godzin, a wydaje mi się robi postępy, ale nadal nie mogę dostać pracy.

Przejdę do tego samouczka: http://toroid.org/ams/git-website-howto (co jest w większości takie samo, kilka drobnych zmian) i po przeczytaniu kilku porad tutaj: https://stackoverflow.com/a/6636509/1049688 Skończyło się na otrzymaniu pliku, który wygląda jak to:

#!/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 

to wszystko wydaje się dobrze w teorii, i wydaje się, że polecenia modułem są uruchomione, ale ja dostaję następujące komunikaty o błędach powrotem:

pilota: modułem „” (wordpress git: //github.com/WordPress/WordPress.git) zarejestrowane dla ścieżki 'wordpress' zdalny: Podmoduł "wp-content/themes/limeblastevolution/inc/cssCrush" (git: //github.com/peteboere/css-crush.git) zarejestrowany dla ścieżki 'wp-content/themes/limeblastevolution/inc/cssCrush " zdalny: krytyczny: działające drzewo '/srv/www/limeblast.co.uk/htdocs_test" już istnieje. pilota: Klon git: '' w submodule //github.com/WordPress/WordPress.git ścieżki 'wordpress Zmarnowana

Jakieś pomysły? Dziękuję Ci.

Odpowiedz

6

Możesz odnieść sukces z git-deploy.

Ale jeśli to jest zbyt koncentruje się na szynach lub jeśli nie może lub nie chce korzystać z innych powodów, tutaj jest jak wymusić aktualizację submodule w post-commit:

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

Musisz uruchom to na serwerze; więc prawdopodobnie najlepiej dodać go do skryptu hooks/post-receive. Zwykle jest to BASH lub SH.

+2

Dziękuję za pomoc. Dodałem tę linię do mojego pliku po otrzymaniu, ale po początkowym załadowaniu i pobraniu (które wydają się działać dobrze) pojawia się komunikat o błędzie "remote: Musisz uruchomić to polecenie z poziomu działania drzewa roboczego. " w odniesieniu do modułu częściowego. Jakieś pomysły? Twoje zdrowie. –