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.