Skip to main content

Configuración de Git

Para alterar configuraciones de git usamos el comando git config.

https://git-scm.com/docs/git-config

Es necesario configurar algunas variables que git usa para rastrear el usuario que hizo los cambios en el archivo y lo comiteó, recordando que las variables para git son sensibles a mayúsculas. Por defecto es bueno usar en el nombre la primera letra mayúscula.

La configuración está asociada a un nivel pero tu configuración de git es la suma de todos los niveles, siendo que la configuración del repositorio (local) tiene preferencia sobre la configuración del usuario (global) y esta sobre la configuración del sistema (system).

Para que el comando git config sepa en qué nivel configurará el alcance.

  • --system son configuraciones a nivel de sistema, todos los usuarios tendrán la misma configuración (evítalo)

    • en Linux queda en /etc/gitconfig y solo se crea cuando se hace la primera configuración.
    • en windows queda en C:\Documents\Git\etc\gitconfig
  • --global son configuraciones a nivel de usuario

    • en Linux queda en ~/.gitconfig en la raíz del home del usuario.
    • en windows queda en C:\Users<UserName>.gitconfig
  • --local son configuraciones a nivel de repositorio, o sea, el directorio necesita tener un .git y estará dentro de esta carpeta un config.

git config --global user.name "Fulano Tall"

git config --global user.email "[email protected]"

git config --list --show-scope

Algunas otras configuraciones pueden ser interesantes, pero no necesarias.

                    #nombredelbloq.config
git config --global core.editor vim
git config --global color.branch auto
git config --global color.diff auto
git config --global color.interactive auto
git config --global color.status auto

Todo puede ser configurado a través de la cli o editado directamente en el archivo gitconfig correcto. La ventaja del uso de la cli es evitar errores, entonces ten cuidado al editar el archivo.

para abrir el archivo directamente y editar

# estando en el directorio del proyecto
git config --edit
# para tu usuario
git config --global --edit
# general
sudo git config --system --edit

Ejemplo de mi gitconfig a nivel de mi usuario.

cat ~/.gitconfig
# bloque
[user]
# configs
name = David Puziol
email = [email protected]
[core]
editor = vim
[color]
branch = auto
diff = auto
interactive = auto
status = auto
[alias]
ec = git config --global -e
co = checkout
cob = checkout -b
c = commit
cm = commit -m
cma = commit -a --ammend
lg = log — all — graph — decorate — oneline — abbrev-commit
ac = !git add -A && git commit -m
df = diff
a = add
aa = add -A
tags = tags -l
branches = branch -a
up = !git pull --rebase --prune $@ && git submodule update --init --recursive
undo = reset HEAD~1 --mixed
wip = !git add -A && git commit -qm \"WIPE SAVEPOINT\" && git reset HEAD~1 --hard
pullall = "!git branch -r | grep -v \"\\->\" | while read remote; do git branch --track ${remote#origin/} ${remote}; done && git fetch --all && git pull --all"

Observa que core.name y core.email están en el mismo bloque [core]

Alias son atajos que podemos crear para llamar y sustituir parte de la línea de código para facilitar la vida, pero solo haz esto después de conocer bien los comandos.

Por ejemplo en este repositorio tenemos un .git

~/study-git/.git develop
cat config
# nombre del bloque
[core]
# config del bloque
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
editor = vim
[remote "origin"]
url = [email protected]:davidpuziol/study-git.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
remote = origin
merge = refs/heads/main

Es posible configurar una branch, en el caso del ejemplo abajo main, como siendo por defecto para el pull (bajar) y push (subir).

git config --local init.defaultBranch main