git

Añadir cambios

git add file1 file2 añade los archivos modificados al índice de git.

git commit fija todos los cambios en la rama y pide un mensaje; lo recomendable es usar la primera línea como título, un espacio en blanco y después un resumen de todos los cambios realizados.

git commit -m permite definer el comentario directamente en la línea; git commit -a identifica automaticamente los archivos modificados, los añade e inicia commit.

Ramas

git branch permite ver todas las ramas disponibles se utiliza:

$ git branch
#   newbranch
# * master

Crear una nueva rama

git branch newbranch crea una nueva rama (newbranch) a partir de la rama en la que uno está.

Se puede añadir una descripción a la rama (al crearla o en cualquier momento) utilizando --edit-description.

Cambiar de una rama a otra

git switch newbranch te sitúa en la nueva rama, en la que puedes hacer todos los cambios necesarios.

Fusionar las dos ramas

  • git switch master te sitúa en la rama de destino
  • git merge newbranch fusiona las dos ramas
    • si hubiese cambios en las dos ramas aparece un conflicto
    • git diff permite ver los conflictos; una vez solucionados
    • git commit -a para finalizar la fusión
  • git branch -d newbranch borra la rama asegurándose de los cambios estén en master
    • -D hace lo mismo, pero sin miramientos

Tags

Los tags permiten anotar cambios dentro de una rama; se usa generalmente para semantic versioning. (Ver más documentación).

Para ver los tags generados se utiliza git tag.

Crear un tag

git tag -a v0.1.1 -m "Esto es la versión 0.1.1 genera un tag v0.1.1.

Con la opción -a, -m funciona igual que en commit, pero si no lo pasas se abre el editor de mensajes.

git show v0.1.1 mostraría el mensaje asociado a ese tag.

Volver a una versión previa con un tag

git checkout tag

Aparece en detached HEAD; hay que crear una nueva rama antes de continuar:

  • git switch -c nombrenuevo o
  • git checkout -b nombrenuevo tag

Exportar una rama

git archive --format zip --output /path/to/file.zip branch

o

git archive -o /path/to/file.zip branch