setup - Actualizando y comprometiendo solo los permisos de un archivo usando el control de versión git
sincronizar git con servidor (3)
El artículo de @fooMonster funcionó para mí
# git ls-tree HEAD
100644 blob 55c0287d4ef21f15b97eb1f107451b88b479bffe script.sh
Como puede ver, el archivo tiene 644 permisos (ignorando los 100). Nos gustaría cambiarlo a 755:
# git update-index --chmod=+x script.sh
cometer los cambios
# git commit -m "Changing file permissions"
[master 77b171e] Changing file permissions
0 files changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 script.sh
Simplemente convertí un archivo some.sh
en un archivo ejecutable ( chmod 755 ...
), los permisos se actualizaron pero no el contenido. ¿Hay alguna forma de convertir el archivo en git para que el bit ejecutable se restaure / configure en clone / checkout / pull ?
Actualización: ¿cómo puedo rastrear que los nuevos permisos fueron enviados a github
?
No funciona para mi
El modo es verdadero, las permanentes del archivo se han cambiado, pero git dice que no hay trabajo que hacer.
git init
git add dir/file
chmod 440 dir/file
git commit -a
El problema parece ser que git solo reconoce ciertos cambios de permisos.
Por defecto, git actualizará los permisos de archivos si los cambia.
Si no ve ningún cambio al modificar el permiso, probablemente tenga una configuración en git que ignore el modo de archivo.
Mire en su proyecto, en la carpeta .git
para el archivo de config
y debería ver algo como esto:
[core]
filemode = false
Puede cambiarlo a true
en su editor de texto favorito o ejecutar:
git config core.filemode true
Entonces, debería poder enviar normalmente sus archivos. Solo comprometerá los cambios de permiso.