2011-10-26 23 views
5

Acabo de empezar a tratar de aprender a Git y me he quedado un poco atascado. Estamos usando Github para mantener nuestro proyecto "estable", pero estoy teniendo problemas para trabajar con el repositorio.Establezca la subcarpeta/subcarpeta Apache como dir de trabajo GIT

Quiero saber si es posible usar un servidor web local htdocs/[projectname] como el directorio de trabajo - de esta manera podría clonar el repositorio de github, trabajar en él en el servidor local (para que funcione ya que la aplicación debería permitirme prueba todo lo que escribo correctamente) y luego etapa -> cometer desde allí.

Estoy trabajando en una Mac usando el entorno MAMP. La aplicación es un CMS basado en PHP. Lo mantenemos en Github en un repositorio privado. Actualmente Git parece estar usando /Users/Ben/Core-CMS como el directorio de trabajo pero esto hace que sea muy difícil probar cosas - sería mucho mejor si el directorio de trabajo estuviera dentro de apache htdocs dir

Compré Pro Git pero estoy teniendo un Es muy difícil aprender los conceptos de git. He evitado deliberadamente usar la GUI ya que deseo aprender el funcionamiento interno de Git correctamente antes de comenzar a "hacer trampa".

+0

Podría dar más detalles sobre su configuración? (¿Dónde está su directorio de trabajo, el lenguaje/marco que está utilizando, etc.) –

+0

Seguro - Estoy trabajando en una Mac usando el entorno MAMP. La aplicación es un CMS basado en PHP. Lo mantenemos en Github en un repositorio privado. Actualmente, Git parece estar usando/Users/Ben/Core-CMS como el directorio de trabajo, pero esto hace que sea muy difícil probar cosas - sería mucho mejor si el directorio de trabajo estuviera dentro del directorio apache htdocs. –

Respuesta

5

Si usted tiene el permiso para escribir en el htdocs dir, basta con mover /Users/Ben/Core-CMS a htdocs/Core-CMS y acceder a ella cuando http://localhost/Core-CMS.

Si no puede escribir en el htdocs dir, crearía /Users/Ben/web, pondría mis proyectos allí y le diría a apache que preste servicio desde allí. Para indicarle a Apache que mirar en /Users/Ben/web para servir a sus proyectos, buscar la siguiente línea en su configuración del Apache:

DocumentRoot /path/to/htdocs 

y sustituirla por:

DodumentRoot /Users/Ben/web 
+0

en serio? ¡No pensé que sería TAN fácil! Muchas gracias :) –

+0

Un git repo es simplemente un directorio tonto con un '.git' adentro, las estructuras de datos subyacentes son realmente simples. –

+1

Tenga en cuenta que debe evitar que su servidor web sirva al directorio '.git', que contiene información de configuración privada (y todo su trabajo en progreso). Si no desea tener que hacerlo explícitamente (y arriesgarse a olvidarlo), podría considerar configurar un repositorio vacío que se implemente al ser enviado, como se describe aquí: http://toroid.org/ams/git-website -howto –

1

Esto no debería ser un problema. Estoy haciendo esto todo el tiempo.

Cambie a su directorio público y ejecute:

git clone REPO_URL NAME_OF_DIR_TO_CLONE_TO 

primero.

El directorio en el que clonas un repositorio de git no debe existir.

Solo necesita una clave ssh autorizada para enviar sus cambios desde el repositorio a github y git instalados en el servidor (o en su cliente si ha montado todo en su máquina local).

Luego usted confirma que es local y, si lo hace, puede enviar sus cambios a github.

Otra forma sería hacer que el servidor web use su directorio de trabajo como DocumentRoot.

espero que no me perdí su problema aquí;)

+0

Gracias, pregunta rápida, cuando dices "El directorio que clonaste en un repositorio git no debe existir". ¿Qué quieres decir exactamente? ¿Que un directorio con ese nombre no puede existir en la ruta de clonación? –

+0

Si clonas un proyecto git como este "git clone URL abc" no es posible tener un directorio llamado abc, ni siquiera uno vacío, que ya está allí ya que se creará. Git lanzará un mensaje de error si intentas algo como esto. –

+0

Entonces, solo para verificar que esto sea correcto, si clono un repositorio de Git en un directorio nombrado en mi Mac, para trabajar con ese repositorio en Git nuevamente (por ejemplo, mañana) entonces solo tendría que navegar a ese directorio en la terminal y git sabrá qué repos es? porque parece que tengo un problema porque git siempre olvida el proyecto que tenía abierto y no puedo encontrar un comentario 'abierto existente' (¡ni siquiera estoy seguro de que sea eso lo que busco para ser sincero!) –

Cuestiones relacionadas