:::: MENU ::::

Crear repositorio GIT con proyecto existente

Crear repositorio GIT con proyecto existente
21 votos, 3.90 media (77% puntos)

Una situación común al inicio de cada proyecto es crear el repositorio de código para el control de versiones.

Normalmente los proyectos en los que trabajo son de tamaño medio o grande por lo que disponemos de un servidor VPS o dedicado en el que instalar el servidor GIT, pero si no es el caso, siempre se puede utilizar github o bitbucket.

En ese caso podéis saltar la primera parte de la explicación.

Instalación de GIT

Como de costumbre, solemos utilizar Debian para nuestros proyectos, así que, sirva el ejemplo con esta distriución.

user@server:/# apt-get install git-core

Sencillo, verdad?

Crear el repositorio GIT compartido

Si estais empezando con GIT, siempre surge la duda de los tipos de repositorio GIT bare y non-bare. Podéis echar un vistazo al link anterior para comocer las diferencias básicas. En este caso montaremos una arquitectura como la siguiente:

Arquitectura repositorio GIT compartido y dos locales

Con esta arquitectura se dispone de un servidor GIT compartido y varios desarrolladores pueden trabajar sobre el mismo.

Para ello, creamos un repositorio bare en algún lugar de nuestro servidor:

user@server:/# cd /home/miusuario
user@server:/# mkdir mirepo.git
user@server:/# cd mirepo.git
user@server:/# git init --bare --shared

Crear el repositorio GIT local

A continuación debemos iniciar nuestro repositorio local en nuestra máquina de desarrollo. Tanto si tenemos un proyecto como si no, iremos a la carpeta del proyecto y ejecutaremos.

user@localpc:/# cd /ruta/al/proyecto
user@localpc:/# git init

El siguiente paso (opcional) será crear el fichero .gitignore, dentro de nuestra carpeta de proyecto. En dicho archivo deberemos incluir todos los ficheros o rutas que deseemos excluir del control de versiones. Por ejemplo si nuestro proyecto genera archivos de salida, es habitual y recomendable dejar fuera dichos archivos.

Por ejemplo en el caso de Magento, plataforma con la que trabajamos habitualmente, el contenido inicial habitual de nuestros ficheros .gitignore suele ser algo como lo siguiente:

app/etc/local.xml
dev/
media/
var/

A continuación, si nuestro proyecto ya está en curso y tenemos archivos que poner bajo control de versiones, ejecutaremos las siguientes ordenes para añadir todos los archivos del proyecto a nuestro repositorio:

user@localpc:/# git add .
user@localpc:/# git commit -m "Versión inicial"

Con esto tenemos un repositorio completamente funcional en nuestra máquina local, pero seguramente querremos enviar todos estos archivos al repositorio compartido para que el resto de usuarios puedan descargarlo.

user@localpc:/# git remote add origin miusuario@mihost:/home/miusuario/mirepo.git
user@localpc:/# git push origin master

Ahora tenemos el código tanto en nuestra máquina local como en el repositorio remoto, preparado y listo para que el resto de desarrolladores lo descarguen.
En cualquier otra máquina, podremos conectarnos al nuevo repositorio y realizar la copia a local para empezar a trabajar. Para ello en la carpeta donde deseemos alojar el proyecto:

user@localpc:/# git init
user@localpc:/# git remote add origin miusuario@mihost:/home/miusuario/mirepo.git
user@localpc:/# git pull origin master

Con esto tenemos nuestros repositorios compartidos y locales listos para trabajar.




4 Comments

  • Responder Mauro |

    Estimado Daniel, en estos instantes probare tus comandos, pero seria bueno que en el recuadro donde se descarga el repositorio remoto en diferentes hosts, en tu descripcion pusieras:
    user@anyhost:
    Y en el servidor git:
    admin@servergit:
    Para que se entienda mucho mas rapido
    Saludos !

  • Responder Germán |

    Muy buen post. Me sirivió muchísimo y me ayudó a comprender de forma muy rápida el funcionamiento general de git, había leído en otros lugares y sinceramente ninguno fue tan claro. Saludos.

  • Responder Randy |

    Hermano como puedo crear un repositorio de codigo y pubicarlo en la web utilizando Python con Django, Sldos

Hey! Qué opinas sobre el artículo?