reconoce - Configuraciones de configuración de Git específicas de Windows; donde estan puestos
git windows server 2016 (2)
He leído la documentación de Git y ¿De dónde vienen las configuraciones en mi configuración de Git? y sin embargo, todavía no puedo entender algunas de mis configuraciones.
Estoy en Git 2.5.3 en Windows 10. Aquí está la salida de git config -l
:
λ git config -l
core.symlinks=false
core.autocrlf=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
user.name=Ben Collins
user.email=#redacted#
alias.sm=submodule
alias.br=branch
alias.co=checkout
alias.st=status
alias.rebuild=!git rm --cached -r . && git reset --hard
core.excludesfile=C:/Users/Benjamin/Documents/gitignore_global.txt
core.editor=c:/Users/Benjamin/AppData/Local/atom/bin/atom.cmd
core.attributesfile=C:/Users/Benjamin/.gitattributes
push.default=simple
merge.tool=p4merge
mergetool.p4merge.cmd=p4merge.exe "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
mergetool.p4merge.path=C:/Program Files/Perforce/p4merge.exe
gui.encoding=utf-8
diff.guitool=p4merge
difftool.p4merge.path=C:/Program Files/Perforce/p4merge.exe
difftool.p4merge.cmd=p4merge.exe "$LOCAL" "$REMOTE"
mergetool.keepbackup=false
rerere.enabled=true
credential.helper=!''C:/Users/Benjamin/AppData/Roaming/GitCredStore/git-credential-winstore.exe''
filter.lfs.clean=git lfs clean %f
filter.lfs.smudge=git lfs smudge %f
filter.lfs.required=true
color.diff.whitespace=red reverse
Lo que es molesto es que las primeras doce configuraciones que no puedo encontrar en ninguna parte .
C:/Program Files/Git
λ git config --system --list
fatal: unable to read config file ''C:/Program Files/Git/mingw64/etc/gitconfig'': No such file or directory
C:/Program Files/Git
λ git config --global --list
user.name=Ben Collins
user.email=#redacted#
alias.sm=submodule
alias.br=branch
alias.co=checkout
alias.st=status
alias.rebuild=!git rm --cached -r . && git reset --hard
core.excludesfile=C:/Users/Benjamin/Documents/gitignore_global.txt
core.editor=c:/Users/Benjamin/AppData/Local/atom/bin/atom.cmd
core.attributesfile=C:/Users/Benjamin/.gitattributes
push.default=simple
merge.tool=p4merge
mergetool.p4merge.cmd=p4merge.exe "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
mergetool.p4merge.path=C:/Program Files/Perforce/p4merge.exe
gui.encoding=utf-8
diff.guitool=p4merge
difftool.p4merge.path=C:/Program Files/Perforce/p4merge.exe
difftool.p4merge.cmd=p4merge.exe "$LOCAL" "$REMOTE"
mergetool.keepbackup=false
rerere.enabled=true
credential.helper=!''C:/Users/Benjamin/AppData/Roaming/GitCredStore/git-credential-winstore.exe''
filter.lfs.clean=git lfs clean %f
filter.lfs.smudge=git lfs smudge %f
filter.lfs.required=true
color.diff.whitespace=red reverse
Además, cuando intento desarmar una de las primeras doce configuraciones, no tiene ningún efecto:
C:/Users/Benjamin/Projects/blah [master +0 ~1 -0]
λ git config --unset core.autocrlf
C:/Users/Benjamin/Projects/blah [master +0 ~1 -0]
λ git config core.autocrlf
true
C:/Users/Benjamin/Projects/Saddleback/cm-core [master +0 ~1 -0]
λ git config --unset-all core.autocrlf
C:/Users/Benjamin/Projects/Saddleback/cm-core [master +0 ~1 -0]
λ git config core.autocrlf
true
¿Son estas primeras doce configuraciones codificadas o específicas de la plataforma de alguna manera? ¿Cómo consigo el control de ellos?
Como lo explica esta confirmación , han agregado otra ubicación de configuración solo para Windows, que se aplica incluso antes del --system
:
El archivo
/etc/gitconfig
se puede utilizar para almacenar una configuración predeterminada de todo el sistema. En Windows, la configuración también se puede almacenar enC:/ProgramData/Git/config
; Este archivo será utilizado también por el software basado en libgit2....
En Windows, ya que no hay un directorio central
/etc/
, hay otro archivo de configuración, destinado a contener las configuraciones para todo el software relacionado con Git que se ejecuta en la máquina. En consecuencia, este archivo de configuración tiene una prioridad aún menor que el archivo$(prefix)/etc/gitconfig
.
Así que creo que puedes encontrar esas configuraciones misteriosas en C:/ProgramData/Git/config
.
Desde esa confirmación puedo ver que git config --system --list
debería git config --system --list
mostrado esas configuraciones, pero parece que la ausencia de C:/Program Files/Git/mingw64/etc/gitconfig
abortó la operación, que es probablemente un error.
En mi versión de git hay un modificador --show-origin en el comando list que muestra dónde se aplicó la configuración. Estoy de acuerdo en que es confuso que no haya un interruptor provisto para acceder a la ubicación de configuración de Windows dentro de ProgramData.
C:/Users/karlb>git --version
git version 2.11.0.windows.3
C:/Users/karlb>git config --list --show-origin
file:"C://ProgramData/Git/config" core.symlinks=false
file:"C://ProgramData/Git/config" core.autocrlf=true
file:"C://ProgramData/Git/config" core.fscache=true
file:"C://ProgramData/Git/config" color.diff=auto
file:"C://ProgramData/Git/config" color.status=auto
file:"C://ProgramData/Git/config" color.branch=auto
file:"C://ProgramData/Git/config" color.interactive=true
file:"C://ProgramData/Git/config" help.format=html
file:"C://ProgramData/Git/config" http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
file:"C://ProgramData/Git/config" diff.astextplain.textconv=astextplain
file:"C://ProgramData/Git/config" rebase.autosquash=true
file:"C://Program Files//Git//mingw64/etc/gitconfig" credential.helper=manager
file:"C://Program Files//Git//mingw64/etc/gitconfig" difftool.usebuiltin=true
file:"C://Program Files//Git//mingw64/etc/gitconfig" alias.lol=log --oneline --graph
file:"C://Program Files//Git//mingw64/etc/gitconfig" alias.last=log -1 HEAD
file:C:/Users/karlb/.gitconfig [email protected]
file:C:/Users/karlb/.gitconfig user.name=Karl Horton