Transparencias de “Git para el día a día” de la Meetup PHP Vigo

En este enlace (5,15 MB) dejo las transparencias de la presentación “Git para el día a día” de la Meetup PHP Vigo del día 14 de marzo de 2016.

El contenido, pensado para usuarios familiarizados con Git, es el siguiente:

  • Breve introducción a Git.
  • Ramas, fusión y conflictos.
  • Repositorios remotos.
  • Flujos de trabajo.
  • Git flow.

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.

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.

 

Published
Categorized as Git Tagged