Я успешно установил и настроил msysGit Portable на мою флешку и использовал ее для извлечения и установки репозиториев GitHub. Тем не менее, мне кажется, что мне всегда нужно поддерживать SSH.
В частности, чтобы SSH мог найти мои ключевые файлы, я должен следовать этим инструкциям , чтобы запустить второй экземпляр ssh -agent
, а затем ssh-add
мой ключ каждый раз, когда я запускаю git-bash.bat.
Используя вывод ssh -vgit@github.com
для отладки Я вижу, что msysGit по умолчанию использует мой каталог пользователя Windows для поиска ключей. Это не может сделать это; Мне нужно, чтобы он смотрел в своем собственном каталоге на переносном диске.
Как сделать так, чтобы $ HOME был собственной папкой программы?
Инструкции из на этой странице похожи на разорванную ссылку, которую я первоначально разместил. Цитируется ниже. Также вот веб-архив оригинальной статьи Vox .
Однако, если вы попробуете это и получите:
% ssh-add Не удалось открыть соединение с вашим агентом аутентификации.
тогда ваш сеанс не работает под ssh-agent. Вы можете обойти это, перезапустив новую оболочку под агентом, запустив:
exec ssh-agent bash
где вы можете заменить bash на оболочку по вашему выбору. Как только вы сделаете это, вы сможете запустить 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
Итак, если вы завершите вызов bash сценарием, установив HOME на:
% ~ dp0
: путь оболочки на вашем USB-ключе % ~ d1 \ your \ path
: если % ~ d1
является буквой диска (вашего USB-ключа, если на нем находится ваша оболочка) , вы должны иметь возможность принудительно установить HOME на любое значение, которое вам нужно.
Примечание (ноябрь 2011 г.): с тех пор 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
Статья « Portable Git для Windows: установка переменной среды $ HOME
для обеспечения полной переносимости (включая ключи SSL и конфигурацию для использования с GitHub) » также добавляет полезную информацию.
Однако, если вы устанавливаете Git на переносной диск, вам нужно, чтобы ваши настройки переносились вместе с установкой - чего, очевидно, не будет, если он будет искать их в папке, которая может не существовать на других компьютерах.
Итак, что нам нужно сделать, это указать Portable Git, что он должен рассматривать определенное место в его собственной папке как домашнюю папку; Таким образом, мы можем скопировать всю папку Git куда угодно, и настройки будут перемещаться вместе с ней.