Asumiendo que tenemos tarball project.tar.gz con nuestro trabajo inicial. Podemos situarlo bajo el control de versiones de git como sigue a continuación.
$ tar xzf project.tar.gz
$ cd project
$ git init-db
Git contestará incumpliendo la zona de almacenamiento local.
Ahora que hemos inicializado el directorio de trabajo (Puedes ver un nuevo directorio llamado ‘.git’). Digámosle a git que haga un seguimiento de todos los ficheros en ese directorio.
$ git add .
Finalmente,
$ git commit -a
nos preguntará si queremos hacer un commit, y luego guardará todos los ficheros en el repositorio.
Probaremos modificando algunos ficheros, y luego ejecutamos
$ git diff
para ver los cambios. Cuando ejecutemos
$ git commit -a
nos mostrará otra vez un mensaje describiendo el cambio, y luego grabará las nuevas versiones de los ficheros modificados.
Una nota sobre los mensajes del commit. Aunque no es obligatorio, es una buena idea empezar el mensaje de commit con una linea simple y corta (menos de 50 caracteres) resumiendo los cambios, segiodo por una linea en blanco y luego el resto de descripción. Las herramientas que convierten los commits en email, por ejemplo, utiliza la primera linea para el ‘subject’ y el resto para el ‘body’.
Para añadir un nuevo fichero, primero crea un fichero, y luego
$ git add path/to/new/file
luego hacemos un commit normal. Ningún comando especial es necesario para borrar un fichero, solo lo borramos y luego hacemos un commit.
En este punto podemos ver el historial de cambios utilizando
$ git whatchanged
Si también queremos ver diffs completos en cada paso, utilzaremos
$ git whatchanged -p
Utilizando branches
Un repositorio simple de git puede mantener diferentes branches de desarrollo. Para crear una nueva branch llamada ‘experimental’, utilizaremos
$ git branch experimental
Si ahora ejecutamos
$ git branch
tendremos un listado de las branches existentes actualmente:
experimental
* master
La branch experimental es la única creada, y la branch ‘master’ es la branch por defecto que se crea automaticamente. El asterisco marca la branch como la activa.
Para marcar ‘experimental’ como activa utilizaremos el siguiente comando
$ git checkout experimental
Editemos un fichero y volvamos a la master branch.
$ git commit -a
$ git checkout master
Ahora podemos observar que el cambio que hicimos ya no es visible, puesto que este se realizó sobre la ‘branch experimental’ y ahora estamos en la master.
Podemos realizar varios cambios en la master y si listamos los cambios
$ git commit -a
vemos como las dos branches han diverjido, con diferentes cambios realizados en cada una de ellos. Para hacer un merge de los cambios hechos en las dos ramas, ejecutamos:
$ git pull . experimental
Si los cambios no generan conflictos, perfecto. Si hay conflictos los marcadores, se quedarán guardados en los ficheros problemáticos. Para mostrar los datos de los conflictos
$ git diff
Mostrará dichos marcadores hasta que se resuelvan los conflictos,
$ git commit -a
hará un commit del resultado del merge, y finalmente
$ gitk
Mostrará una representación grafica de el historial resultante.
Si necesitamos eliminar una branch, podemos hacerlo con:
$ git branch -D crazy-idea
Las branches son simples y fáciles, así que son ideales para hacer pruebas.