3 puntos por GN⁺ 2024-11-26 | 1 comentarios | Compartir por WhatsApp

Cómo configurar mi identidad de Git

  • Introducción: Este artículo explica cómo gestionar la identidad según el entorno de trabajo mediante la configuración de Git. El autor descubrió una forma de incluir archivos según condiciones específicas usando includeIf.

  • Configuración de Git:

    • Con includeIf, se pueden incluir distintos archivos de configuración de Git según el directorio.
    • Por ejemplo, se puede configurar para que los directorios Git bajo ~/code incluyan ~/.config/git/personal, y los que están bajo ~/work incluyan ~/.config/git/work.
    • Cada archivo incluye información como nombre de usuario, correo electrónico y clave de firma.
  • Configuración basada en URL remota:

    • Con hasconfig:remote.*.url, se puede configurar Git de forma condicional cuando existe una URL remota específica.
    • Por ejemplo, en directorios que tienen un remoto como github.com:orgname/**, se puede configurar para usar ~/.config/git/config-gh-org.
  • Configuración de claves SSH:

    • Es necesario configurar claves SSH para poder hacer pull y push al remoto.
    • En el archivo ~/.ssh/config, se pueden definir Host e IdentityFile para usar la clave SSH correspondiente a cada remoto.
    • Si se quiere usar un IdentityFile distinto para el mismo Hostname, hay que configurar un valor de Host diferente.
  • Usar la configuración SSH desde Git config:

    • Para usar una configuración SSH distinta en repositorios específicos, se puede reemplazar la URL con insteadOf en Git config.
    • Por ejemplo, se puede usar gh-work:orgname en lugar de github.com:orgname para aplicar la configuración SSH correcta.
  • Consideraciones:

    • Puede haber problemas con este enfoque, y el autor quiere recibir comentarios sobre si existe una mejor manera de hacerlo.

Material de referencia

  • Se consultaron varios artículos de blog sobre cómo gestionar múltiples identidades de Git.

1 comentarios

 
GN⁺ 2024-11-26
Opiniones de Hacker News
  • Explica cómo usar un nombre como gh-work para separar la identidad de SSH y Git. Todos los repositorios Git clonados con gh-work seguirán la configuración de gh-work.inc y usarán la misma clave de firma que la configuración de SSH

  • Al trabajar en una startup, había un colega que cambiaba su identidad a un nombre de cuento de hadas todos los días. Esto no ayudaba a la informática forense del control de versiones, pero quizá buscaba recordar que se puede poner cualquier cosa en la configuración de identidad

  • Sugiere agregar alias para la identidad en .gitconfig, de modo que después de inicializar o clonar un repositorio se pueda ejecutar el comando git config-company o git config-personal

  • Explica cómo administrar submódulos fácilmente configurando el comando SSH en ~/.gitconfig, sin necesidad de modificar ~/.ssh/config

  • Presenta cómo administrar la configuración de Git por directorio usando includeIf y hasconfig:remote. Esto también es útil al clonar repositorios

  • Recomienda enfáticamente a los consultores usar un dispositivo separado para el trabajo o al menos un usuario del sistema operativo distinto. Usar un dispositivo personal para el trabajo puede ser riesgoso

  • Explica cómo administrar la configuración de Git con NixOS y home-manager. Usa la condición hasconfig:remote para establecer un correo electrónico específico

  • Explica cómo mantener la complejidad de SSH dentro de ~/.ssh e incluir configuraciones separadas por cliente o proyecto. Cuando no hay nombres de host como GitHub, se asignan alias

  • Explica cómo usar gitdir para separar el trabajo y los proyectos personales. hasconfig:remote cambia por completo las reglas del juego

  • Explica cómo separar y administrar repositorios de trabajo y personales en ~/dev y ~/src. Incluye distintos archivos de configuración de Git según cada ruta

  • Explica cómo configurar archivos .gitconfig personales y de trabajo para usar distintos correos electrónicos y claves de firma. Activa la firma GPG para firmar commits