2011-10-26 13 views
5

Właśnie zacząłem próbować uczyć się Git i trochę utknąłem. Używamy Github do utrzymywania naszego "stabilnego" projektu, ale mam problem z pracą z repozytorium.Ustaw hdsocs/podfolder Apache jako działający katalog GIT

Chcę wiedzieć, czy możliwe jest używanie lokalnego serwera sieciowego htdocs/[projectname] jako katalogu roboczego - w ten sposób mogę sklonować repozytorium z Github, pracować nad nim na lokalnym serwerze (tak działa, ponieważ aplikacja powinna umożliwiać mi przetestuj wszystko, co piszę poprawnie), a następnie stwórz -> zatwierdzaj stamtąd.

Pracuję na komputerze Mac używającym środowiska MAMP. Aplikacja to oparty na PHP CMS. Trzymamy go na Github w prywatnym repozytorium. Obecnie Git wydaje się używać /Users/Ben/Core-CMS jako działającego rela, ale to bardzo utrudnia testowanie rzeczy - byłoby znacznie lepiej, gdyby działający dir był wewnątrz apache htdocs dir

Kupiłem Pro Git ale mam bardzo ciężko się uczyć pojęć git - Celowo uniknąłem używania GUI, ponieważ chcę dobrze poznać wewnętrzne funkcjonowanie Gita, zanim zacznę "oszukiwać"!

+0

mógłbyś podać więcej szczegółów na temat konfiguracji? (gdzie jest twój pracujący katalog, język/środowisko, z którego korzystasz, itd.) –

+0

Oczywiście - pracuję na komputerze Mac używającym środowiska MAMP. Aplikacja to oparty na PHP CMS. Trzymamy go na Github w prywatnym repozytorium. Obecnie Git wydaje się używać/Users/Ben/Core-CMS jako działającego rela, ale to bardzo utrudnia testowanie rzeczy - byłoby znacznie lepiej, gdyby działający katalog był wewnątrz apache htdocs dir. –

Odpowiedz

5

Jeśli masz uprawnienia do zapisu w htdocs dir, wystarczy przesunąć /Users/Ben/Core-CMS do htdocs/Core-CMS i do niego dostęp w http://localhost/Core-CMS.

Jeśli nie możesz napisać w katalogu htdocs, utworzę /Users/Ben/web, połóż tam moje projekty i powiedz Apache, aby służył tam. Powiedzieć apache patrzeć w /Users/Ben/web służyć projekty, szukać następnej linii w apache conf:

DocumentRoot /path/to/htdocs 

i zastąpić go:

DodumentRoot /Users/Ben/web 
+0

Poważnie? Nie sądziłem, że to będzie TAK łatwe! Dziękuję bardzo :) –

+0

repozytorium git jest po prostu głupim katalogiem z wewnątrz '.git', podstawowe struktury danych są naprawdę proste. –

+1

Pamiętaj, że powinieneś zatrzymać swój serwer sieciowy przed serwowaniem katalogu '.git', który zawiera prywatne informacje konfiguracyjne (i całą twoją pracę w toku). Jeśli nie chcesz tego robić (i zapominasz o ryzyku), możesz rozważyć skonfigurowanie nieobsługiwanego repozytorium, które będzie wdrażane, na przykład, jak opisano tutaj: http://toroid.org/ams/git-website -howto –

1

To nie powinien być problem. Robię to cały czas.

Przejdź do katalogu publicznego i uruchomić:

git clone REPO_URL NAME_OF_DIR_TO_CLONE_TO 

pierwszy.

Katalog, w którym klonowane jest repozytorium git, nie może istnieć.

Potrzebny jest tylko klucz ssh upoważniony do przesyłania zmian z repozytorium do github i git zainstalowanych na serwerze (lub w kliencie, jeśli wszystko zostało zamontowane na komputerze lokalnym).

Następnie zatwierdzasz, co jest po prostu lokalne, i jeśli skończysz, możesz przesunąć swoje zmiany na github.

Innym sposobem byłoby, aby serwer WWW używał twojego katalogu roboczego jako jego DocumentRoot.

Mam nadzieję, że nie tęsknię za swój problem tutaj;)

+0

Dzięki - szybkie pytanie - kiedy mówisz: "Dir klonujesz repozytorium git nie istnieje." co dokładnie masz na myśli? Że katalog z tą nazwą nie może istnieć na ścieżce klonowania? –

+0

Jeśli sklonujesz projekt git taki jak ten "URL skórki gc abc", nie będzie można mieć katalogu o nazwie abc - nawet pustego - już tam, ponieważ zostanie utworzony. Git wyświetli komunikat o błędzie, jeśli spróbujesz czegoś takiego. –

+0

Tak więc, aby sprawdzić, czy to jest poprawne - jeśli sklonuję repozytorium Git na nazwany katalog na moim Macu, aby ponownie pracować z tym repo w Git (powiedzmy jutro), to po prostu potrzebowałbym nawigować do tego katalogu w terminalu i git będzie wiedział, co to jest repo? ponieważ wydaje mi się, że mam problem z tym, że git zawsze zapomina, jaki projekt miałem otwarty i nie mogę znaleźć "otwartego istniejącego" pochwały (nie jestem nawet pewien, czy to jest to, po co lubię, tak szczerze!) –