Исправление местоположения msysGit Portable $ HOME

Я успешно установил и настроил msysGit Portable на мою флешку и использовал ее для извлечения и установки репозиториев GitHub. Тем не менее, мне кажется, что мне всегда нужно поддерживать SSH.

В частности, чтобы SSH мог найти мои ключевые файлы, я должен следовать этим инструкциям , чтобы запустить второй экземпляр ssh -agent , а затем ssh-add мой ключ каждый раз, когда я запускаю git-bash.bat.

Используя вывод ssh -vgit@github.com для отладки Я вижу, что msysGit по умолчанию использует мой каталог пользователя Windows для поиска ключей. Это не может сделать это; Мне нужно, чтобы он смотрел в своем собственном каталоге на переносном диске.

Как сделать так, чтобы $ HOME был собственной папкой программы?

Обновление для неработающей ссылки Vox

Инструкции из на этой странице похожи на разорванную ссылку, которую я первоначально разместил. Цитируется ниже. Также вот веб-архив оригинальной статьи Vox .

Однако, если вы попробуете это и получите:

% ssh-add
Не удалось открыть соединение с вашим агентом аутентификации. 

тогда ваш сеанс не работает под ssh-agent. Вы можете обойти это, перезапустив новую оболочку под агентом, запустив:

 exec ssh-agent bash

где вы можете заменить bash на оболочку по вашему выбору. Как только вы сделаете это, вы сможете запустить ssh-add, чтобы загрузить ключ для этой оболочки.

20
задан CharlesB 25 June 2012 в 21:19
поделиться

1 ответ

Для запуска 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 куда угодно, и настройки будут перемещаться вместе с ней.

17
ответ дан 30 November 2019 в 01:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: