修复msysGit便携式$ HOME位置
我已经成功地在我的闪存驱动器上安装并configuration了msysGit Portable,并用它来拉和推GitHub仓库。 不过,我似乎总是要欺骗SSH的支持。
具体来说,为了让SSHfind我的密钥文件,我必须按照这些指示来启动ssh-agent
的第二个实例,然后ssh-add
每次运行git-bash.bat时ssh-add
我的密钥。
使用ssh -v git@github.com
的输出进行debugging,我发现msysGit默认为我的Windows用户目录来查找密钥。 它不能这样做; 我需要它在便携式驱动器上查找自己的目录。
我如何强制$ HOME成为程序自己的文件夹?
更新破坏的Vox链接
此页面上的说明与我最初发布的现在已断开的链接类似。 引用如下。 另外这里是原始Vox文章的网页存档 。
但是,如果您尝试此操作并获得:
% ssh-add Could not open a connection to your authentication agent.
那么你的会话不在ssh-agent下运行。 您可以通过运行以下代码重新启动代理下的新shell:
exec ssh-agent bash
在那里你可以用你select的shellreplacebash。 一旦你这样做了,你应该可以运行ssh-add来加载你的密钥。
用来启动git bash的命令是:
C:\Windows\SysWOW64\cmd.exe /c ""C:\Prog\Git\1.7.1\bin\sh.exe" --login -i"
我只是在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
默认情况下,$ HOME $%HOMEPATH%,但如果我强制%HOME%:
set HOME=/another/path
然后启动相同的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
所以,如果你通过设置HOME的脚本包装bash调用:
-
%~dp0
:USB密钥包装的path - 或
%~d1\your\path
:%~d1
是驱动器盘符(如果你的包装器是在你的盘符上的话)
,你应该能够强制家庭无论你需要什么值。
注意(2011年11月):从那以后, OP dgw写了他自己的包装 :
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
文章“ 用于Windows的便携式Git:设置$HOME
环境variables以允许完整的可移植性(包括用于GitHub的SSL密钥和configuration) ”也增加了有用的信息。
但是,如果您将Git安装在便携式驱动器上,则需要将设置与安装一起传输 – 显然如果在其他计算机上可能不存在的文件夹中查找它们,则显然不会。
所以,我们需要做的是告诉便携式Git把自己的文件夹中的特定位置作为主文件夹; 这样我们就可以将整个Git文件夹复制到任何我们喜欢的位置,设置将随之移动。