tutorial mac gui for español descargar commands git

mac - git repository



Git global ignora no funciona (10)

El archivo debe estar en su directorio de inicio. En Windows, generalmente significa: C: / documents and settings / [user].

En Linux es: / home / [usuario]

.gitignore_global el archivo .gitignore_global y lo puse en mi directorio de instalación de git. Cuando ejecuto el comando:

git config --global core.excludesfile ~/.gitignore

las reglas en el archivo de ignorar no se aplican a mis commits.

Cuando cambio el nombre del archivo .gitignore y lo pongo en mi raíz del proyecto, las reglas se aplican.

¿Que esta mal aquí?


Encontré eso cuando lo había definido así:

git config --global core.excludesfile $HOME/.config/git/ignore

no funcionó Cambiando para no usar la variable $ HOME, como esta:

git config --global core.excludesfile ~/.config/git/ignore

Inmediatamente comenzó a funcionar. Espero que esto ayude a alguien más.

FYI:

$ git --version git version 1.7.10.2 (Apple Git-33)


Estaba teniendo el mismo problema (en Windows). Terminé revisando mi archivo ~/.gitconfig y encontré que mi archivo de ~/.gitconfig se configuró en:

excludesfile = C://Users//myUserName//Documents//gitignore_global.txt

pero debería haber sido:

excludesfile = C://Users//myUserName//.gitignore_global

Después de que lo cambié, todo funcionó como debería.


Hace poco cometí un error y git config core.excludesfile tags el siguiente comando git config core.excludesfile tags esto cambió la ruta del archivo excludes a un archivo local en el repositorio actual, y esta configuración se ha escrito en el archivo de configuración local en .git/config , para corregir que acabo de abrir el archivo .git/config y borré las excludesfile tags línea excludesfile tags y todo vuelve a la normalidad.


Nota: a partir de git1.7.12 (agosto de 2012) :

El valor de:

  • core.attributesfile predeterminada en $ HOME / .config / git / attributes y
  • core.excludesfile en $HOME/.config/git/ignore respectivamente cuando existen estos archivos.

Por lo tanto, si crea un archivo $HOME/.config/git/attributes , ni siquiera tiene que establecer su configuración core.excludesfile .


Otra razón por la que un git global ignora puede no estar funcionando: caracteres invisibles en la ruta.

Solo descubrí que este era mi problema al pegar el mensaje de advertencia de git-check-ignore en la barra de direcciones de Chrome, donde afortunadamente se hizo visible:

(No era visible en la terminal. Y esto podría haber sido un largo agujero de conejo para la depuración ... 😅)


Otro motivo difícil de rastrear por el que .gitignore (_global) parece no funcionar podría ser espacios iniciales en las líneas. El archivo no perdona espacios principales. Así que asegúrese de que cada línea de su archivo no tenga ninguna a menos que sea una línea en blanco. Me tomó un tiempo darme cuenta.

Solo agregué mis dos centavos.


Pensé que podría participar en esto. Hay otra razón por la cual el archivo global de ignorar parece no estar funcionando. Es algo que no creo que haya sido cubierto en respuestas anteriores. Es tan certeramente obvio que, por supuesto , es muy fácil pasar por alto.

Es decir, que git solo ignorará los nuevos archivos . Si el archivo ya está siendo rastreado por git, entonces ¡por supuesto git no lo ignorará! Por lo tanto , no se aplican los patrones en ningún archivo de gitignore o exclude .

Eso tiene sentido. ¿Por qué git querría ignorar las modificaciones a los archivos que ya está rastreando? Si se debe ignorar el archivo, primero debe indicar a git que no lo rastree, luego git lo ignorará como se describe en el manual. Para obtener información sobre cómo destrabar archivos, vea esta respuesta .

Todo esto me lleva a preguntar, ¿es posible ignorar los cambios en los archivos rastreados? Nuevamente, Git cumple. Esta respuesta; Git: Ignorar los archivos rastreados nos da el comando:

git update-index --assume-unchanged file

Finalmente, aquí hay información adicional sobre la depuración de git ignore.

La página de manual de gitignore (5) nos dice:

Los patrones que un usuario desea que Git ignore en todas las situaciones (por ejemplo, copia de seguridad o archivos temporales generados por el editor de elección del usuario) generalmente entran en un archivo especificado por core.excludesfile en el archivo ~ / .gitconfig del usuario. Su valor predeterminado es $ XDG_CONFIG_HOME / git / ignore. Si $ XDG_CONFIG_HOME no está configurado o está vacío, se usa $ HOME / .config / git / ignore en su lugar.

Entonces, esto es nuevo y reemplaza al anterior ~/.gitignore_global mencionado anteriormente.

A continuación, y esto es realmente útil, es que a partir de 1.8.2, ahora tenemos algunas excelentes herramientas de depuración. Mira esto:

Git aprende a ignorar mejor - Nuevo en 1.8.2

Esto muestra cómo usar la nueva bandera de verificación check-ignore para verificar que git esté ignorando con éxito sus patrones, por ej.

git check-ignore bin/a.dll --verbose


Quizás necesites hacer:

git config --global core.excludesfile ~/.gitignore_global

Y tomar un café


Tuve este problema porque inicialmente había llamado ''git config core.excludefiles'' sin --global y con un valor incorrecto, y por lo tanto, había almacenado la propiedad localmente. Parece que la propiedad local ocultó la global (que tenía el valor correcto), ignorándola por completo.