.gitconfig
generalmente se almacena en el user.home
directorio
Utilizo una identidad diferente para trabajar en proyectos para la Compañía A y algo más para la Compañía B (principalmente el nombre / correo electrónico). ¿Cómo puedo tener dos configuraciones diferentes de Git para que mis registros no vayan con el nombre / correo electrónico?
git
git-config
priya
fuente
fuente
[user] email = ...
bloque, anulará el global~/.gitconfig
, ¿y esto es solo para su usuario?Hay 3 niveles de configuración de git; proyecto, global y sistema.
Cree una configuración específica del proyecto, debe ejecutar esto en el directorio del proyecto:
Crea una configuración global:
Crear una configuración del sistema:
Y como puede suponer, el proyecto anula el sistema de anulaciones global y global.
fuente
git config user.name
ogit config user.email
le mostrará el nombre o correo electrónico que Git usará para el repositorio actual.A partir de la versión 2.13 de git, git admite la configuración condicional que incluye . En este ejemplo, clonamos los repositorios de la Compañía A en el
~/company_a
directorio y los repositorios de la Compañía B en~/company_b
.En tu
.gitconfig
puedes poner algo como esto.Contenido de ejemplo de .gitconfig-company_a
Contenido de ejemplo de .gitconfig-company_b
fuente
Gracias @ crea1
Una pequeña variante:
Como está escrito en https://git-scm.com/docs/git-config#_includes :
Entonces uso en mi caso,
~ / .gitconfig :
Entonces, si el directorio del proyecto está en mi
~/wokspace/
, la configuración de usuario predeterminada se reemplaza con~ / .gitconfig-w :
fuente
git config user.name
devuelve uno correcto, debería estar bien. ¿Estás bajo GNU / Linux u otro sistema operativo?Para ser explícita, también se puede utilizar
--local
para utilizar el archivo de configuración del repositorio actual :fuente
También puede apuntar la variable de entorno
GIT_CONFIG
a un archivo quegit config
debería usar. ConGIT_CONFIG=~/.gitconfig-A git config key value
el archivo especificado se manipula.fuente
Estoy haciendo esto para mi correo electrónico de la siguiente manera:
Luego, cuando clono un nuevo proyecto de trabajo, solo tengo que ejecutarlo
git hobbyprofile
y se configurará para usar ese correo electrónico.fuente
Otra forma es usar direnv y separar los archivos de configuración por directorio. Por ejemplo:
Cada uno
.envrc
debe contener algo como esto:Y
.gitconfig
es habitual gitconfig con los valores deseados.fuente
Puede personalizar la configuración de Git de un proyecto cambiando el archivo de configuración específico del repositorio (es decir
/path/to/repo/.git/config
). Por cierto,git config
escribe en este archivo de forma predeterminada:Prefiero crear perfiles separados para diferentes proyectos (por ejemplo, en
~/.gitconfig.d/
) y luego incluirlos en el archivo de configuración del repositorio:Esto funciona bien si necesita usar el mismo conjunto de opciones en múltiples repositorios que pertenecen a un solo proyecto. También puede configurar alias de shell o un comando Git personalizado para manipular los perfiles.
fuente
Estoy en el mismo barco. Escribí un pequeño script bash para administrarlos. https://github.com/thejeffreystone/setgit
fuente
-s
se maneja en su script Bash.Tuve un error al intentar
git stash
mis cambios locales. El error de git decía "Por favor, dime quién eres" y luego me dijo "Ejecutargit config --global user.email "[email protected]
ygit config --global user.name "Your name"
configurar la identidad predeterminada de tu cuenta". Sin embargo, debe Omitir --global para establecer la identidad solo en su repositorio actual.fuente