ver usar sirve que para modificados ignorar crear como cambios archivos archivo git ignore chmod

usar - ignorar cambios git



¿Cómo hago para que Git ignore los cambios de modo de archivo(chmod)? (11)

Agregando a la respuesta de Greg Hewgill (de usar la variable de configuración core.fileMode ):

Puede usar la --chmod=(-|+)x de git update-index (versión de bajo nivel de "git add") para cambiar los permisos de ejecución en el índice, desde donde se seleccionaría si usa "git commit "(y no" git commit -a ").

Tengo un proyecto en el que tengo que cambiar el modo de los archivos con chmod a 777 durante el desarrollo, pero no debería cambiar en el repositorio principal.

Git recoge en chmod -R 777 . y marca todos los archivos como cambiados. ¿Hay alguna manera de hacer que Git ignore los cambios de modo que se han hecho a los archivos?


Al definir el siguiente alias (en ~ / .gitconfig), puede desactivar fácilmente el comando fileMode per git:

nfm = "!f(){ git -c core.fileMode=false $@; };f"

Cuando este alias está prefijado al comando git, los cambios de modo de archivo no se mostrarán con comandos que de otra manera los mostrarían. Por ejemplo:

git nfm status


Deshacer cambio de modo en el árbol de trabajo:

git diff --summary | grep --color ''mode change 100755 => 100644'' | cut -d'' '' -f7- | xargs -d''/n'' chmod +x git diff --summary | grep --color ''mode change 100644 => 100755'' | cut -d'' '' -f7- | xargs -d''/n'' chmod -x

O en mingw-git

git diff --summary | grep ''mode change 100755 => 100644'' | cut -d'' '' -f7- | xargs -e''/n'' chmod +x git diff --summary | grep ''mode change 100644 => 100755'' | cut -d'' '' -f7- | xargs -e''/n'' chmod -x


Esto funciona para mí:

find . -type f -exec chmod a-x {} /;

o marcha atrás, dependiendo de su sistema operativo.

find . -type f -exec chmod a+x {} /;


Puedes configurarlo globalmente:

git config --global core.filemode false

Si lo anterior no funciona para usted, la razón podría ser que su configuración local anule la configuración global.

Elimine su configuración local para que la configuración global tenga efecto:

git config --unset core.filemode

Alternativamente, puede cambiar su configuración local al valor correcto:

git config core.filemode false


Si

git config --global core.filemode false

No funciona para ti, hazlo manualmente:

cd into yourLovelyProject folder

cd en la carpeta .git:

cd .git

Editar el archivo de configuración:

nano config

cambia de verdadero a falso

[core] repositoryformatversion = 0 filemode = true

->

[core] repositoryformatversion = 0 filemode = false

guardar, salir, ir a la carpeta superior:

cd ..

reiniciar el git

git init

¡estás listo!


Si desea configurar esta opción para todos sus --global , use la opción --global .

git config --global core.filemode false

Si esto no funciona, probablemente estés usando una versión más reciente de git, así que prueba la opción --add .

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

Si lo ejecuta sin la opción --global y su directorio de trabajo no es un repositorio, obtendrá

error: could not lock config file .git/config: No such file or directory


Si desea establecer filemode en falso en archivos de configuración recursivamente (incluidos los submódulos): find -name config | xargs sed -i -e ''s/filemode = true/filemode = false/'' find -name config | xargs sed -i -e ''s/filemode = true/filemode = false/''


Si ya ha utilizado el comando chmod , verifique la diferencia de archivo, muestra el modo de archivo anterior y el modo de archivo actual, como:

nuevo modo: 755

modo antiguo: 644

establece el modo antiguo de todos los archivos usando el comando de abajo

sudo chmod 644 .

ahora establezca core.fileMode en falso en el archivo de configuración usando el comando o manualmente.

git config core.fileMode false

luego aplique el comando chmod para cambiar los permisos de todos los archivos como

sudo chmod 755 .

y nuevamente establezca core.fileMode en verdadero.

git config core.fileMode true

Para las mejores prácticas, no mantener el core.fileMode falso siempre.


Tratar:

git config core.fileMode false

Desde git-config(1) :

core.fileMode If false, the executable bit differences between the index and the working copy are ignored; useful on broken filesystems like FAT. See git-update-index(1). True by default.

El -c se puede usar para configurar esta opción para comandos únicos:

git -c core.fileMode=false diff

Y la bandera --global hará que sea el comportamiento predeterminado para el usuario que ha iniciado sesión.

git config --global core.fileMode false

Advertencia

core.fileMode no es la mejor práctica y debe usarse con cuidado. Esta configuración solo cubre el bit ejecutable de modo y nunca los bits de lectura / escritura. En muchos casos, cree que necesita esta configuración porque hizo algo como chmod -R 777 , haciendo que todos sus archivos sean ejecutables. Pero en la mayoría de los proyectos, la mayoría de los archivos no necesitan y no deberían ser ejecutables por razones de seguridad .

La forma correcta de resolver este tipo de situación es manejar los permisos de carpetas y archivos por separado, con algo como:

find . -type d -exec chmod a+rwx {} /; # Make folders traversable and read/write find . -type f -exec chmod a+rw {} /; # Make files read/write

Si lo hace, nunca necesitará usar core.fileMode , excepto en entornos muy raros.


Solución simple:

Haga clic en esta recomendación simple en la carpeta del proyecto ( no eliminará sus cambios originales) ... solo eliminará los cambios que se hayan realizado mientras usted cambió el permiso de la carpeta del proyecto

elogio está abajo:

git config core.fileMode falso

Por qué se modifica todo este archivo innecesario: porque ha cambiado los permisos de la carpeta del proyecto con commend sudo chmod -R 777 ./yourProjectFolder

¿Cuándo comprobarás los cambios que no hiciste? Lo encontraste como abajo mientras usabas el nombre de archivo git diff