Estoy en un aprieto con Git
. Estoy intentando ejecutar git commit
pero tengo que ser capaz de swtich entre ~/.gitconfig1
y ~/.gitconfig2
¿Hay un interruptor de línea de comandos - o al menos tener Git
utilizar un archivo gitconfig diferente a los encontrados en /etc/gitconfig
, ~/.gitconfig
y .git/config
?¿Cómo puedo especificar la ruta global personalizada de gitconfig?
Respuesta
Encontré una manera de ejecutar esto, no era elegante, pero funcionó, y hasta ahora parece ser la única forma de hacer que esto funcione.
Git usa la ruta HOME
para determinar dónde está .gitconfig
. Yo era capaz de realizar algo como esto:
/home/marco/.silly/.gitconfig
/home/marco/.stupid/.gitconfig
/home/marco/.gitconfig
Y al ejecutar git commit (que es el único comando que requiere la .gitconfig
) me hizo caso omiso de la vía de acceso inicial.
HOME=/home/marco/.silly/ git commit -m "silly configuration"
continuación, puede utilizar alias para hacer esto fácilmente
alias sillygit="HOME=/home/marco/.silly/ git"
sillygit commit -m "silly stuff"
Buen truco. Parece que no puedo encontrar ninguna forma real de hacerlo: hay una variable de entorno GIT_CONFIG, pero solo afecta a 'git config', de la misma manera que a su opción' -f, - file'. – Cascabel
man git-config
me dice que use la bandera -f
para pasar un archivo de configuración. Sin embargo, parece que no funciona con otros comandos que no sean git config
, por lo que creo que debe invocarlo antes de confirmarlo, lo que se puede hacer fácilmente con un alias.
Eso solo le dice a esa invocación particular de git-config de qué archivo leer o escribir, no afectará a ningún otro comando, hasta donde yo sé. – Cascabel
Correcto - esto no funcionó. –
Puede utilizar --git-dir
git --git-dir /home/marco/silly/.git commit ...
--git-dir establece el repositorio que se está editando, que el autor de la pregunta intenta evitar específicamente. –
Mario de alias approach se puede utilizar de una manera un poco más elegante Ceppi utilizando el argumento -c config=value
al git
:
$ alias sillygit="git -c user.name=Silly -c [email protected]"
$ sillygit commit
Esto, por supuesto, asume que no te importa guardar las diferentes claves de configuración en tu .bashrc
o similar en lugar de en tu .gitconfig
, y tiene la advertencia de terminar el shell shell.
- 1. ¿Cómo puedo especificar una ruta personalizada para los archivos de anotación en tmareg-mode emacs?
- 2. ¿Cómo especificar la preferencia de la ruta de la biblioteca?
- 3. ¿Cómo funciona la sección [github] de .gitconfig?
- 4. mover el archivo .gitconfig mundial
- 5. Symfony2 Ruta global {_locale} requisitos
- 6. MonoTouch - Cómo especificar la ruta de la imagen de UIImage.FromFile()
- 7. Cambio de ubicación de Windows, .gitconfig
- 8. mergetool de .gitconfig siendo ignorado?
- 9. ¿Puedo cargar un archivo .gitconfig desde otro?
- 10. Git ignorando gitconfig?
- 11. polymorphic_path de ruta colección personalizada
- 12. ¿Cómo obtener alias trabajando en .gitconfig?
- 13. ¿Cómo puedo especificar la ruta de un JAR en un archivo de compilación de ant?
- 14. No puedo enlazar con fuerza el archivo gitconfig
- 15. ¿Puedo especificar la ruta de salida para la etiqueta MSBuild <Content>?
- 16. ¿Cómo puedo especificar una ruta relativa en un archivo de configuración de registro de Python?
- 17. ¿Cómo agregar una ruta RESTful personalizada a la aplicación Rails?
- 18. personalizada clip: ruta y url
- 19. manipuladores de ruta personalizada en ASP.Net WebAPI
- 20. Cómo agregar una ruta de inclusión global para xcode
- 21. ¿Cómo especificar explícitamente una ruta a Firefox para Selenium?
- 22. ¿Cómo configurar gitconfig para el nombre remoto predeterminado?
- 23. ¿Puedo especificar la ruta JDK para compilar dentro de Ant build.xml?
- 24. ¿Cómo puedo especificar dependencias de prueba JUnit?
- 25. Ruta de acceso personalizada del archivo user.config
- 26. ASP.net MVC controlador de ruta personalizada/restricción
- 27. FOP: cómo especificar la ruta relativa de src de la imagen?
- 28. ¿Cómo especificar una ruta con espacios en blanco con cmake?
- 29. Cómo enlazar con un recurso dinámico y especificar una ruta
- 30. Nuget, ¿cómo puedo especificar la ubicación de los paquetes?
¿De verdad necesita dos configuraciones diferentes mientras está en un repositorio? ¿Puedes usar el .git/config para cada repositorio para obtener lo que quieres? Supongo que no es muy elegante si solo tienes dos configuraciones comunes para distribuir en docenas de repositorios. – Cascabel
@Jefromi Sí, lo hago. Es una situación única que he encontrado donde se necesitan dos configuraciones –
La otra alternativa obvia sería alias globalmente 'git commit-v2' (o algo más corto) a'! Export GIT_AUTHOR_NAME = "Segundo nombre"; git commit'. – Cascabel