2011-02-08 16 views
10

użyłem tego przewodnika, aby użyć git do autopublish moje zmiany na mojej stronie internetowej, gdy wciskam na moim zdalnego repozytorium pochodzenie git:Korzystanie git do publikowania na stronie internetowej

http://www.lwp.ca/james/2010/03/using-git-to-manage-online-website-projects/

Oto mój/haki/post- plik aktualizacji:

cd ../../public_html/dir/wbg 
env -i git pull 

Oto moja struktura katalogów:

/home/git/wbg.git < - mój zdalnego repozytorium git

/home/public_html/dir/WBG < - mój folder web

Kiedy biegnę

git push origin master 

repozytorium aktualizacji ale mój katalog stron internetowych jest jeszcze pusty. Jakieś pomysły?

Edycja: jeśli jakikolwiek przyszły ruch widzi to, moim prawdziwym problemem było to, że Zarówno twoje zdalne miejsce docelowe, jak i twój katalog strony docelowej muszą być repozytoriami git. Nie możesz po prostu skonfigurować go do skopiowania projektu do nowego folderu, chyba że ten folder jest również repozytorium git.

+0

czy wykonałeś również "chmod + x" zgodnie z sugestią w artykule? – eckes

+0

link podany w tej kwestii jest martwy –

Odpowiedz

6

Nie za dużo do roboty, ale mogę zgłosić, że z powodzeniem używam podobnego metoda do tego.

Dla moich celów, nazywam moje repozytorium serwera "hub" i moje repozytorium "Prime". Upewnij się, że poprawnie zainicjowałeś repozytorium git w katalogu htdocs serwera (Prime) i czy wprowadziłeś zmiany do nagiego repozytorium (Hub) lub je wciągnąłeś.

To jest hak post-update, którego używam, czyli w katalogu haczyków mojego repozytorium Hub:

#!/bin/sh 

echo 
echo "*** Pulling changes into Prime" 
echo 

cd /path/to/htdocs/ || exit 
unset GIT_DIR 
git pull hub master 

exec git-update-server-info 

Upewnij się, że jest to plik wykonywalny! W razie wątpliwości po prostu edytuj plik post-update.sample i po zakończeniu usuń rozszerzenie .sample. Echo tekstu daje przyjemną informację zwrotną, że faktycznie ma miejsce kopiowanie. Jeśli nie widzisz tego tekstu, oznacza to, że nie wyciąga zmian. A jeśli nie zamierzasz wywoływać zdalnego repozytorium "hub", zamień go na "origin" lub cokolwiek zdecydujesz się użyć.

Jako środek ostrożności, tak aby moi Prime i lokalne repozytoria nie zbyt z walnięcie, mam to jako mój Prime post-commit haka:

#!/bin/sh 

echo 
echo "*** Pushing changes to Hub" 
echo 

git push hub 

Następnie można po prostu wyciągnąć zmian od piasty do mojego lokalne repozytorium.

+0

Próbowałem go i mam ten błąd: pilota: zdalny: *** Ciągnięcie zmian w Prime zdalnej: zdalnej: krytyczny: nie repozytorium git (lub którykolwiek z nadrzędne katalogi): .git remote: fatal: Nie jest to repozytorium git (ani żadnego z katalogów nadrzędnych): .git – Citizen

+0

Ok, rozwiązałem to. Wygląda na to, że twój katalog strony również musi być repozytorium git. Zrobiłem to, ale teraz pojawia się błąd: remote: fatal: "origin" nie wydaje się być repozytorium git remote: fatal: zdalny koniec zawiesił się niespodziewanie – Citizen

+0

Nie jest niezałatwiony GIT_DIR spowoduje, że moje pochodzenie nie będzie w stanie zaktualizować? – Citizen

1

Możesz zacząć od pobrania aktualizacji, aby wyświetlić niektóre wyniki debugowania. Zarówno standardowe wyjście, jak i standardowe wyjście błędów są przekazywane do git send-pack na drugim końcu, więc możesz po prostu echo wiadomości i zobaczysz je na kliencie, że zrobiłeś git push. Zakładam, że postępowałeś zgodnie ze wskazówkami tego słowa, sprawiłeś, że skrypt po aktualizacji był wykonywalny, sklonował repo do folderu internetowego itd.

14

Możesz znaleźć lepszą alternatywę pod adresem http://toroid.org/ams/git-website-howto, która używa tylko jednego repozytorium git i pozwala, aby wszystkie metadane i poprzednia historia pozostały poza DocumentRoot.

Poradnik, z którego korzystałem i ten, który łączyłem stronę odsyłającą z innym artykułem, jest oparty na, ale ten, który z nim połączono, wydaje się być preferowanym sposobem kierowania nowych użytkowników do kanału #git IRC.

+0

Dzięki za to. Przydatny! – Jacob

Powiązane problemy