He leído algunas preguntas sobre los permisos de archivos en Git y todavía estoy un poco confundido. Tengo un repositorio en GitHub bifurcado de otro. Después de la fusión, deben ser idénticos. Sin embargo:
$ git diff --summary origin/epsilon master/epsilon
mode change 100644 => 100755 ants/dist/sample_bots/csharp/compile.sh
mode change 100644 => 100755 ants/dist/starter_bots/coffeescript/MyBot.coffee
mode change 100644 => 100755 ants/dist/starter_bots/coffeescript/ants.coffee
mode change 100644 => 100755 ants/util/block_test.sh
mode change 100644 => 100755 manager/mass_skill_update.py
mode change 100644 => 100755 worker/jailguard.py
mode change 100644 => 100755 worker/release_stale_jails.py
mode change 100644 => 100755 worker/start_worker.sh
Intenté cambiar los permisos de los archivos, pero no altera los resultados de la diferencia.
windows
git
diff
file-permissions
Synesso
fuente
fuente
core.filemode
configuradofalse
) realmente tienen el bit de ejecución establecido.--add
bandera para la ejecución por alguna razón:git update-index --add --chmod=+x <file>
. Después de esto, el archivo ya estaba en el escenario con el chmodDe otra pregunta aquí en stackoverflow: ¿Cómo hago que Git ignore los cambios en el modo de archivo (chmod)?
Tratar:
Desde git-config (1) :
fuente
hard
intenté restablecer. Esto hizo el truco para mí.Práctico one-liner para Git Bash:
Marcará todos los
.sh
archivos como ejecutables. Después de eso, solo tienes que hacerlogit commit
.fuente
Si utiliza Cygwin git (o Linux git, supongo), existe una buena posibilidad de que su configuración core.filemode se haya establecido en el nivel del proyecto en $ projdir / .git / config. Descubrí que tenía que hacer lo siguiente para que mi git Cygwin y mi git de Windows coexistieran bien en un sistema de archivos de Windows sin que aparezcan cambios de modo de archivo inexistentes todo el tiempo:
Esto permite que mi git de Cygwin continúe viendo cambios en el modo de archivo, que generalmente son relevantes, mientras le indica al git de Windows que ignore los cambios en el modo de archivo que ve, que generalmente son falsos positivos.
fuente
Primero verifique los permisos del archivo usando el siguiente comando.
Luego cambie los permisos. Aquí "x" representa los permisos de ejecución.
Ahora vuelva a verificar los permisos.
==============================================
si está utilizando una PC con Windows, pero está implementando en una máquina Linux. Ejecute el siguiente comando en primer lugar para que sea compatible con la máquina Linux
dos2unix scriptname.ext scriptname.ext
fuente
git update-index --chmod=1777 'scriptname.ext'
?Lo arreglé cambiando los permisos de archivo en Ubuntu, commit, push y todo OK. Parece que simplemente no funcionaría con msysgit en Windows / NTFS.
fuente