2011-10-26 21 views
5

Ho appena iniziato a provare a imparare Git e mi sono bloccato un po '. Stiamo utilizzando Github per organizzare il nostro progetto "stabile", ma ho problemi a lavorare con il repository.Imposta la htdocs/sottocartella Apache come cartella di lavoro GIT

Voglio sapere se è possibile utilizzare un server Web locale htdocs/[projectname] come directory di lavoro: in questo modo è possibile clonare il repository da github, lavorarci sopra sul server locale (quindi funziona come l'applicazione dovrebbe consentirmi di prova tutto ciò che scrivo correttamente e poi stage -> commetti da lì.

Sto lavorando su un Mac utilizzando l'ambiente MAMP. L'applicazione è un CMS basato su PHP. Lo stiamo tenendo su Github su un repository privato. Attualmente Git sembra utilizzare /Users/Ben/Core-CMS come dir di lavoro ma questo rende molto difficile testare le cose - sarebbe molto meglio se la directory di lavoro fosse all'interno della directory htdocs di apache

Ho comprato Pro Git ma sto avendo un molto difficile imparare i concetti di git - Ho volutamente evitato di usare la GUI come vorrei imparare i meccanismi interni di Git correttamente prima di iniziare a 'barare'!

+0

Potrebbe dare maggiori dettagli sulla tua configurazione? (dov'è la tua directory di lavoro, lingua/framework che stai usando, ecc.) –

+0

Certo - Sto lavorando su un Mac usando l'ambiente MAMP. L'applicazione è un CMS basato su PHP. Lo stiamo tenendo su Github su un repository privato. Attualmente Git sembra utilizzare/Users/Ben/Core-CMS come directory di lavoro ma questo rende molto difficile testare le cose - sarebbe molto meglio se la directory di lavoro fosse all'interno della directory di htdocs di apache. –

risposta

5

Se avete il permesso di scrivere nel htdocs dir, basta spostare /Users/Ben/Core-CMS per htdocs/Core-CMS e accedervi a http://localhost/Core-CMS.

Se non è possibile scrivere nella directory htdocs, creerò /Users/Ben/web, inserirò i miei progetti e dirò a apache di servire da lì. A dire apache di guardare in /Users/Ben/web per servire i vostri progetti, cercare la seguente riga nel conf apache:

DocumentRoot /path/to/htdocs 

e sostituirlo con:

DodumentRoot /Users/Ben/web 
+0

Seriamente? Non pensavo che sarebbe stato così facile! Grazie mille :) –

+0

Un repository git è solo una directory stupida con un '.git' all'interno, le strutture dati sottostanti sono davvero semplici. –

+1

Si noti che è necessario interrompere il server Web dalla directory '.git', che contiene informazioni di configurazione private (e tutti i work in progress). Se non vuoi doverlo fare esplicitamente (e rischiare di dimenticarlo) potresti prendere in considerazione la possibilità di creare un repository spoglio che distribuisce su cui essere spinto, come descritto qui: http://toroid.org/ams/git-website -howto –

1

Questo non dovrebbe essere un problema. Lo sto facendo sempre.

Passa alla directory pubblica ed eseguire:

git clone REPO_URL NAME_OF_DIR_TO_CLONE_TO 

prima.

La directory dove si clona un repository git non deve esistere.

Hai solo bisogno di una chiave ssh autorizzata a trasferire le tue modifiche dal repository a github e git installato sul server (o nel tuo client se hai montato tutto sul tuo computer locale).

Quindi si commette che è solo locale e se si è fatto si può spingere le modifiche su github.

Un altro modo sarebbe quello di fare in modo che il webserver usi la directory di lavoro come DocumentRoot.

spero non mi manca il tuo problema qui;)

+0

Grazie - domanda veloce - quando dici "La dir che cloni un repository git non deve esistere." cosa intendi esattamente? Che una dir con quel nome non può esistere nel percorso clone? –

+0

Se cloni un progetto git come questo "git clone URL abc" non è possibile avere una directory di nome abc - nemmeno una vuota - già lì poiché verrà creata. Git genererà un messaggio di errore se proverai qualcosa di simile. –

+0

Quindi, per verificare che sia corretto, se clonò un repository Git su una directory denominata sul mio Mac, per lavorare di nuovo con quel repository in Git (diciamo, domani), allora avrei solo bisogno di navigare verso quella directory nel terminale e Git saprà cosa repo è? perché mi sembra che abbia un problema che git dimentica sempre quale progetto ho aperto e non riesco a trovare un encomio 'aperto esistente' (non sono nemmeno sicuro che sia quello che sto cercando di essere onesto!) –

Problemi correlati