Creación de repositorios GIT para usuarios de svn
Llevaba mucho tiempo queriendo cambiar todos mis repositorios personales se SVN a GIT, pero no he encontrado tiempo libre para hacerlo hasta ahora. La principal ventaja que me ofrece Git frente a Svn, desde mi humilde punto de vista de usuario, es la posibilidad de hacer rápidos commits en local sin tener que comunicarte con el servidor. Esto nos hará evitarnos esa molesta espera de unos segundillos cuando hacemos los commits, y además fomentará el que hagamos commits más habitualmente y podamos crear una traza más elaborada de los cambios que vamos realizando en cada revisión del repositorio.
Como en muchas otras entradas del blog, esto solo pretende ser una “receta paso-a-paso”. Los detalles podréis buscarlos en la buena documentación que tiene git (recomendado instalar paquete git-doc) o en alguno de los libros o PDFs que dejaré en la sección de enlaces.
Creación del repositorio
Estando en el servidor donde publicaremos nuestro repositorio, nos situamos en la carpeta del proyecto donde está el contenido del mismo y escribimos:
$ git init
Con lo que se creará el directorio .git. Posteriormente añadimos el contenido del proyecto a la historia del repositorio con
$ git add .
Y hacemos el commit
$ git commit -m "Initial version of repository"
Ahora viene el punto crítico con el que más me he tenido que pelear. Una vez dados los pasos anteriores podemos clonar el repositorio desde un equipo cliente, trabajar en local y luego enviar los cambios realizados por medios de parches al mantenedor del repositorio para que el los aplique en el servidor. Sin embargo, no podemos hacer “push” de los cambios realizados sobre este servidor. Para poder hacer esto hay que crear en el servidor un clon “bare” del repositorio que acabamos de crear:
$ git clone --bare my-repo
Lo que creará un directorio my-repo.git que será del cual tengamos que clonar desde el lado del cliente para después poder hacer “push” de los cambios que acabamos.
Clonar, hacer cambios y subirlos al servidor
Desde el lado del cliente clonamos el repositorio bare
$ git clone ruta-a-repo/my-repo.git
Hacemos los cambios necesarios al código y los añadimos con git add. Es importante resaltar que aunque un fichero esté ya añadido al repositorio, si hacemos cambios sobre él, tendremos que indicarlo con git add, para que esos cambios se materialicen en el próximo commit. Para ver que ficheros han sufrido cambios y cuales se harán efectivos en el próximo commit se recomienda usar git status. Y una forma rápida de añadir todos los cambios realizados en ficheros ya añadidos al repositorio es con git add -u.
Una vez indicados todos los cambios, hacemos el commit:
$ git commit -m "Changes XXX"
Podemos hacer tantos commits en local como nos parezca sin tener que establecer comunicación con el servidor. Una vez que queramos subir los cambios realizados al servidor simplemente escribimos
$ git push
Enlaces
Hay multitud de documentación sobre git en la red, pero quizás baste con coger un buen libro y leerlo tranquilamente para conocer algunos de los entresijos de este sistema de archivos distribuido. Aquí podéis encontrar multitud de enlaces a diferentes tipo de contenido. A mi en concreto me ha servido de mucho leerme el libro “Git Internals”, que es un libro breve y conciso. En este otro enlace se muestra un contenido mi parecido al de esta entrada, pero en inglés.
loading...



loading...
Con git puedo instalar un servidor de subversión en windows?
loading...
Git y Subversion son dos gestores de repositorios software diferentes. Si quieres instalar un servidor de subversión tendrás que buscar un software adecuado para ello, cómo por ejemplo “Tortoise SVN” (http://tortoisesvn.tigris.org/)