dgw*_*dgw 20 git ssh msysgit portable-applications home-directory
我已经在我的闪存驱动器上成功安装并配置了msysGit Portable,并使用它来拉动和推送GitHub repos.但是,我似乎总是不得不克服SSH支持.
具体来说,为了让SSH找到我的密钥文件,每次运行git-bash.bat时,我都必须按照这些说明启动第二个实例,ssh-agent然后启动ssh-add我的密钥.
使用ssh -v git@github.com调试的输出我看到msysGit默认使用我的Windows用户目录来查找键.它不能那样做; 我需要它在便携式驱动器上查看自己的目录.
如何强制$ HOME成为程序自己的文件夹?
此页面中的说明与我最初发布的现已断开的链接类似.引用如下.这里也是原始Vox文章的webarchive.
但是,如果你尝试这个并得到:
Run Code Online (Sandbox Code Playgroud)% ssh-add Could not open a connection to your authentication agent.然后你的会话没有在ssh-agent下运行.您可以通过运行以下命令在代理下重新启动新shell来解决此问题:
Run Code Online (Sandbox Code Playgroud)exec ssh-agent bash在哪里可以用你选择的shell替换bash.执行此操作后,您应该能够运行ssh-add来加载该shell的密钥.
Von*_*onC 17
用于启动git bash的命令是:
C:\Windows\SysWOW64\cmd.exe /c ""C:\Prog\Git\1.7.1\bin\sh.exe" --login -i"
Run Code Online (Sandbox Code Playgroud)
我刚刚在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
Run Code Online (Sandbox Code Playgroud)
默认情况下,$ HOME $%HOMEPATH%,但如果我强制%HOME%:
set HOME=/another/path
Run Code Online (Sandbox Code Playgroud)
然后启动相同的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
Run Code Online (Sandbox Code Playgroud)
因此,如果您通过将HOME设置为以下的脚本来包装bash调用:
%~dp0 :USB密钥包装器的路径%~d1\your\path:%~d1作为驱动器号(如果您的包装器在其上,则为您的USB密钥),你应该能够强迫HOME达到你需要的任何价值.
注意(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
Run Code Online (Sandbox Code Playgroud)
文章" Portable Git for Windows:设置$HOME环境变量以允许完全可移植性(包括用于GitHub的SSL密钥和配置) "也添加了有用的信息.
但是,如果您在便携式驱动器上安装Git,您将希望您的设置随安装一起移动 - 显然,如果它在其他计算机上可能不存在的文件夹中查找它们,则显然不会.
因此,我们需要做的是告诉Portable Git将其自己文件夹中的特定位置视为主文件夹; 这样我们就可以在任何我们喜欢的地方复制整个Git文件夹,并且设置随之随身携带.
| 归档时间: |
|
| 查看次数: |
14810 次 |
| 最近记录: |