2012-06-17 10 views
8

Trabajo con mis propios proyectos y de vez en cuando hago un trabajo para terceros donde necesito usar su información de contacto, etc. en commits. Usualmente uso solo nombres de commits globales, etc. pero ahora necesito especificar nombres de commit y correos electrónicos de acuerdo al directorio. ¿Cómo puedo hacer eso en Git?Correo electrónico del autor de Git Commit ¿cambia según el directorio y/o el proyecto?

Quizás útil información relacionada

  1. What is the difference between author and committer in Git?

  2. Git commit with no email

+0

Posible duplicado de [¿Puedo especificar varios usuarios para mí en .gitconfig?] (Https://stackoverflow.com/questions/4220416/can-i- specify-multiple-users-for-myself-in-gitconfig) –

Respuesta

13

Puede tener un nombre de usuario y una dirección de correo electrónico por repositorio que reemplacen sus configuraciones globales. Afectará las confirmaciones hechas en el repositorio actual, pero no en otros repositorios.

git config user.name "Foo Bar" 
git config user.email "[email protected]" 

Puede confirmar que la información local es reemplazar los valores predeterminados globales con:

git config -l | fgrep user. 

Se puede mostrar varias entradas (por ejemplo, tanto un un ajuste de configuración local global y), pero lo que se muestra el último en la lista tiene prioridad.

2

Utilice el siguiente comando para cometer el ch anges

git commit -m "Commit message" --author "Your Name <email>" 

A continuación, podrá establecer el autor, correo electrónico explícitamente para esa confirmación.

+0

... ¿no hay forma de hacer esto más implícito/automático quizás en algún archivo? Tal vez algo centralizado como gitolite pero solo para administrar las credenciales-y-contactos de compromiso (¿no estoy seguro de si es posible, bueno de ahí la q)? – hhh

0

Si necesita especificar otro nombre de autor/confirmador/correo electrónico según las carpetas. Puede añadir una línea como esta en su .bashrc

PROMPT_COMMAND='[[ $PWD =~ ^path/to/dir.*$ ]] && { export GIT_COMMITTER_EMAIL=email && export GIT_COMMITTER_NAME=name && export GIT_AUTHOR_EMAIL=email && export GIT_AUTHOR_NAME=name; } || { unset GIT_COMMITTER_NAME && unset GIT_COMMITTER_EMAIL && unset GIT_AUTHOR_NAME && unset GIT_AUTHOR_EMAIL; }' 
Cuestiones relacionadas