Repare la location de $ HOME de msysGit Portable

He instalado y configurado con éxito msysGit Portable en mi unidad flash, y lo he usado para extraer y mover repositorys GitHub. Sin embargo, parece que siempre tengo que suspender el soporte de SSH.

Específicamente, para que SSH encuentre mis files key, debo seguir estas instrucciones para comenzar una segunda instancia de ssh-agent y luego ssh-add my key cada vez que ejecuto git-bash.bat.

Usando la salida de ssh -v git@github.com para depurar veo que msysGit se establece de manera pnetworkingeterminada en mi directory de usuario de Windows para search keys. No puede hacer eso; Necesito que busque en su propio directory en la unidad portátil.

¿Cómo puedo forzar que $ HOME sea la propia carpeta del progtwig?

Actualización de enlace Vox roto

Las instrucciones de esta página son similares al enlace ahora roto que originalmente publiqué. Citado a continuación. También aquí está el webarchive del artículo original de Vox .

Sin embargo, si testing esto y obtiene:

 % ssh-add Could not open a connection to your authentication agent. 

entonces su session no se ejecuta bajo el agente ssh. Puede solucionar esto reiniciando un nuevo shell bajo el agente ejecutando:

 exec ssh-agent bash 

donde puedes replace bash con el caparazón que elijas. Una vez que hagas esto, deberías poder ejecutar ssh-add para cargar tu key para ese shell.

El command usado para lanzar git bash es:

 C:\Windows\SysWOW64\cmd.exe /c ""C:\Prog\Git\1.7.1\bin\sh.exe" --login -i" 

Acabo de probar lo siguiente en una session de DOS:

 C:\>C:\Windows\SysWOW64\cmd.exe /c ""C:\Prog\Git\1.7.1\bin\sh.exe" --login -i" VonC@XXX /c/ $ echo $HOME /c/Users/VonC 

De forma pnetworkingeterminada, $ HOME $% HOMEPATH%, pero si forzo% HOME%:

 set HOME=/another/path 

y luego lanzar la misma session bash:

 C:\>C:\Windows\SysWOW64\cmd.exe /c ""C:\Prog\Git\1.7.1\bin\sh.exe" --login -i" VonC@XXX /c/ $ echo $HOME /another/path 

Entonces, si ajusta la llamada bash mediante un script, establezca HOME en:

  • %~dp0 : la ruta de la envoltura en su llave USB
  • o %~d1\your\path : con %~d1 como la letra de la unidad (de su llave usb si su envoltorio está en ella)

, deberías poder forzar a HOME a cualquier valor que necesites.


Nota (noviembre de 2011): desde entonces, el OP dgw ha escrito su propia envoltura :

git-bash-portable.bat :

 @echo off rem Copyright (C): 2010 Voyagerfan5761 rem http://technobabbl.es/ set USERPROFILE=%~dp0 set HOMEDRIVE=%~d0 set HOMEPATH=%~p0 set HOME=%~dp0 set HISTFILE=%USERPROFILE%.bash_history rem set BASHRC=%USERPROFILE%.bashrc git-bash.bat 

El artículo " Portable Git para Windows: establecer la variable de entorno $HOME para permitir la portabilidad completa (incluidas las keys SSL y la configuration para usar con GitHub) " también agrega información útil.

Sin embargo, si instala Git en una unidad portátil, querrá que su configuration viaje con la installation, lo que obviamente no ocurrirá si la busca en una carpeta que puede no existir en otras computadoras.

Entonces, lo que tenemos que hacer es decirle a Portable Git que trate una location específica dentro de su propia carpeta como la carpeta de inicio; de esa manera podemos copyr toda la carpeta Git en cualquier lugar que deseemos y la configuration viajará con ella.