Taller de introducción a Git

En la sección de documentación os dejo la presentación y el guion creados para el taller sobre Git, titulado “Taller de introducción a Git” que di el 09/10/2014 en las XIII Xornadas Libres organizadas por el Grupo de Programadores y Usuarios de Linux de la Facultad de Informática de la Universidad de A Coruña. Espero que os sea útil.

Recordar que tenéis disponibles los libros “Git. Fundamentos” y “Git. Servidores privados” de forma gratuita.

Taller de Git Avanzado. Archivos

En la sección de documentación os dejo los archivos usados en el taller de Git avanzado que doy el 29/03/2014 en Galpón en Vigo: la presentación, el guion de clase, los resultados de los ejemplos y del ejercicio y dos archivos de Bash para configurar alias para Git. Espero que os sean útiles.

Taller de Git avanzado

Como continuación del Taller de introducción a Git que impartí el 25/01/2014 en Galpón en Vigo, el próximo 29/03/2014 daré un Taller de Git Avanzado, con los siguientes contenidos:

  • Revisión rápida de los conceptos del primer taller.
  • Colaborando en un servidor remoto: remote, fetch, push, pull.
  • BitBucket.
    • Crear una cuenta.
    • Colaborando en el servidor remoto.
  • Flujos de trabajo en Git.
  • Ejercicio por parejas.
  • Alias de comandos.
  • Interfaces gráficas.
  • Depurando con Git.

Si queréis apuntaros podéis hacerlo a través de este formulario de Google Docs.

Podéis ver toda la información sobre el evento en Google +.

Git y los permisos de los archivos, aka chmod

Al ir a continuar el trabajo en un tema de WordPress hice un

git status

para ver como tenía sincronizado el trabajo con el repositorio local y vi que tenía modificados unos cuantos archivos que no recordaba haberlos tocado últimamente. Por ejemplo, el archivo de la licencia, gpl-2.0.txt

Al hacer un

git diff gpl-2.0.txt

para ver los cambios realizados desde el último commit en el archivo gpl-2.0.txt, el resultado era el siguiente

diff ––git a/gpl-2.0.txt b/gpl-2.0.txt
old mode 100644
new mode 100755

Si os fijáis, lo que hay es un cambio en los permisos del archivo, cambiados al ejecutar un

sudo chmod 775 * -R

Para evitar estos problemas y que git ignore los cambios en los permisos de los archivos, simplemente hay que ejecutar:

git config ––global core.filemode false

Si este comando no te funciona, prueba a añadir el parámetro ––add:

git config ––add ––global core.filemode false

Recuerda que el parámetro ––global funciona a nivel de usuario, por lo que este parámetro afectará a todos tus repositorios locales. Si ejecutamos

cat ~/.gitconfig

podemos ver que aparece la configuración en ese archivo

[core]
filemode = false

En la documentación de Git podéis ver la descripción de este parámetro de configuración

core.fileMode
If false, the executable bit differences between the index and the working tree are ignored; useful on broken filesystems like FAT. See git-update-index(1).
The default is true, except git-clone(1) or git-init(1) will probe and set core.fileMode false if appropriate when the repository is created.