Git
Configuración
Buscar..
Sintaxis
- git config [<file-option>] name [value] # uno de los casos de uso más comunes de git config
Parámetros
Parámetro | Detalles |
---|---|
--system | Edita el archivo de configuración de todo el sistema, que se usa para cada usuario (en Linux, este archivo se encuentra en $(prefix)/etc/gitconfig ) |
--global | Edita el archivo de configuración global, que se utiliza para cada repositorio en el que trabaja (en Linux, este archivo se encuentra en ~/.gitconfig |
--local | Edita el archivo de configuración específico del repositorio, que se encuentra en .git/config en su repositorio; esta es la configuracion por defecto |
Nombre de usuario y dirección de correo electrónico
Inmediatamente después de instalar Git, lo primero que debe hacer es configurar su nombre de usuario y dirección de correo electrónico. Desde un shell, escriba:
git config --global user.name "Mr. Bean"
git config --global user.email [email protected]
-
git config
es el comando para obtener o establecer opciones -
--global
significa que se--global
el archivo de configuración específico para su cuenta de usuario -
user.name
yuser.email
son las claves para las variables de configuración;user
es la sección del archivo de configuración.name
yemail
son los nombres de las variables. -
"Mr. Bean"
y[email protected]
son los valores que está almacenando en las dos variables. Tenga en cuenta las citas en torno a"Mr. Bean"
, que son necesarias porque el valor que está almacenando contiene un espacio.
Configuraciones de git múltiples
Tienes hasta 5 fuentes para la configuración de git:
- 6 archivos:
-
%ALLUSERSPROFILE%\Git\Config
(solo Windows) - (system)
<git>/etc/gitconfig
, siendo<git>
la ruta de instalación de git.
(en Windows, es<git>\mingw64\etc\gitconfig
) - (sistema)
$XDG_CONFIG_HOME/git/config
(solo Linux / Mac) - (global)
~/.gitconfig
(Windows:%USERPROFILE%\.gitconfig
) - (local)
.git/config
(dentro de un repositorio de git$GIT_DIR
) - un archivo dedicado (con
git config -f
), utilizado por ejemplo para modificar la configuración de los submódulos:git config -f .gitmodules ...
-
- la línea de comandos con
git -c
:git -c core.autocrlf=false fetch
anularía cualquier otracore.autocrlf
afalse
, solo para ese comandofetch
.
El orden es importante: cualquier configuración configurada en una fuente puede ser anulada por una fuente que se encuentra debajo.
git config --system/global/local
es el comando para enumerar 3 de esas fuentes, pero solo git config -l enumera todas las configuraciones resueltas .
"resuelto" significa que solo lista el último valor de configuración anulado.
Desde git 2.8, si desea ver qué configuración proviene de qué archivo, escriba:
git config --list --show-origin
Configuración de qué editor utilizar
Hay varias formas de configurar qué editor usar para cometer, rebasar, etc.
Cambie la configuración del
core.editor
.$ git config --global core.editor nano
Establecer la variable de entorno
GIT_EDITOR
.Por un comando:
$ GIT_EDITOR=nano git commit
O para todos los comandos ejecutados en un terminal. Nota: Esto solo se aplica hasta que cierre el terminal.
$ export GIT_EDITOR=nano
Para cambiar el editor para todos los programas de terminal, no solo Git, configure la
EDITOR
entornoVISUAL
oEDITOR
. (VerVISUAL
vsEDITOR
.)$ export EDITOR=nano
Nota: Como arriba, esto solo se aplica al terminal actual; tu shell normalmente tendrá un archivo de configuración que te permitirá configurarlo de forma permanente. (En
bash
, por ejemplo, agregue la línea anterior a su~/.bashrc
o~/.bash_profile
).
Algunos editores de texto (en su mayoría GUI) solo ejecutarán una instancia a la vez, y generalmente se cerrarán si ya tiene una instancia abierta. Si este es el caso de su editor de texto, Git imprimirá el mensaje Aborting commit due to empty commit message.
sin permitirte editar primero el mensaje de confirmación. Si esto le sucede a usted, consulte la documentación de su editor de texto para ver si tiene una --wait
(o similar) que hará que se detenga hasta que se cierre el documento.
Configurando terminaciones de linea
Descripción
Cuando se trabaja con un equipo que usa diferentes sistemas operativos (OS) en todo el proyecto, a veces puede tener problemas al tratar con los finales de línea.
Microsoft Windows
Cuando se trabaja en el sistema operativo Microsoft Windows (OS), los finales de línea son normalmente de forma: retorno de carro + salto de línea (CR + LF). Abrir un archivo que ha sido editado usando una máquina Unix como Linux u OSX puede causar problemas, haciendo que parezca que el texto no tiene ningún final de línea. Esto se debe al hecho de que los sistemas Unix aplican diferentes finales de línea de las líneas de formulario (LF) solamente.
Para solucionar esto puedes ejecutar las siguientes instrucciones.
git config --global core.autocrlf=true
Al finalizar la compra , esta instrucción asegurará que los finales de línea estén configurados de acuerdo con el sistema operativo Microsoft Windows (LF -> CR + LF)
Basado en Unix (Linux / OSX)
Del mismo modo, puede haber problemas cuando el usuario en el sistema operativo basado en Unix intenta leer los archivos que se han editado en el sistema operativo Microsoft Windows. Con el fin de evitar cualquier problema inesperado ejecutar
git config --global core.autocrlf=input
Al confirmar , esto cambiará los finales de línea de CR + LF -> + LF
configuración para un solo comando
puede usar -c <name>=<value>
para agregar una configuración solo para un comando.
Para comprometerse como otro usuario sin tener que cambiar su configuración en .gitconfig:
git -c user.email = mail@example commit -m "some message"
Nota: para ese ejemplo no necesita precisar tanto user.name
como user.email
, git completará la información faltante de las confirmaciones anteriores.
Configurar un proxy
Si estás detrás de un proxy, tienes que contárselo a git:
git config --global http.proxy http://my.proxy.com:portnumber
Si no estás más detrás de un proxy:
git config --global --unset http.proxy
Errores automáticos correctos
git config --global help.autocorrect 17
Esto permite la autocorrección en git y te perdonará tus errores menores (por ejemplo, git stats
de git status
lugar de git status
de git status
). El parámetro que proporciona a help.autocorrect
determina cuánto tiempo debe esperar el sistema, en décimas de segundo, antes de aplicar automáticamente el comando autocorrectado. En el comando anterior, 17 significa que git debe esperar 1.7 segundos antes de aplicar el comando autocorrectado.
Sin embargo, los errores más grandes se considerarán como comandos faltantes, por lo que escribir algo como git testingit
podría resultar en testingit is not a git command.
Listar y editar la configuración actual.
Git config te permite personalizar cómo funciona git. Se usa comúnmente para establecer su nombre y correo electrónico o editor favorito o cómo se deben realizar las combinaciones.
Para ver la configuración actual.
$ git config --list
...
core.editor=vim
credential.helper=osxkeychain
...
Para editar la configuración:
$ git config <key> <value>
$ git config core.ignorecase true
Si pretende que el cambio sea verdadero para todos sus repositorios, use --global
$ git config --global user.name "Your Name"
$ git config --global user.email "Your Email"
$ git config --global core.editor vi
Puedes listar de nuevo para ver tus cambios.
Múltiples nombres de usuario y dirección de correo electrónico
Desde Git 2.13, se pueden configurar varios nombres de usuario y direcciones de correo electrónico mediante el uso de un filtro de carpeta.
Ejemplo para Windows:
.gitconfig
Edición: git config --global -e
Añadir:
[includeIf "gitdir:D:/work"]
path = .gitconfig-work.config
[includeIf "gitdir:D:/opensource/"]
path = .gitconfig-opensource.config
Notas - Se depende el orden, el último que coincida "gana".
- se necesita
/
al final, por ejemplo,"gitdir:D:/work"
no funcionará. - El
gitdir:
prefijo es obligatorio.
.gitconfig-work.config
Archivo en el mismo directorio que .gitconfig
[user]
name = Money
email = [email protected]
.gitconfig-opensource.config
Archivo en el mismo directorio que .gitconfig
[user]
name = Nice
email = [email protected]
Ejemplo para Linux
[includeIf "gitdir:~/work/"]
path = .gitconfig-work
[includeIf "gitdir:~/opensource/"]
path = .gitconfig-opensource
El contenido del archivo y las notas en la sección de Windows.