Чтение строки:
GIT_SSH_COMMAND='ssh -i ...'
- это , предназначенное для предоставления ключа ssh и нескольких параметров ssh для команды ssh
, когда Git - или, более конкретно, git fetch
-использует ssh
для вызова другого Git по URL-адресу, основанному на ssh.
Эта строка неисправна (или отсутствует другая строка), поскольку, как написано, она устанавливает переменную , не экспортируя ее также всреда для git fetch
.Если переменная уже существует в среде, этот конкретный дефект не является проблемой, поскольку уже экспортированные переменные продолжают экспортироваться;но, как и в более типичном случае, переменная еще не существует, она просто создает переменную локально.
Существует два различных способа ее исправить: либо поместить переменную-установка перед самой командой, все в одной логической строке, например:
GIT_SSH_COMMAND='ssh ...' git fetch
Или добавьте команду export
, либо в строке, которая задает переменную, либо вскоре после этого:
export GIT_SSH_COMMAND='...'
или:
GIT_SSH_COMMAND='...'
export GIT_SSH_COMMAND
Обратите внимание, что установка переменной в той же строке, что и команда, означает ее установку в среде этой конкретной команды, но не дольше этой.Установка его с явным export
означает установить его сейчас и сохранять его таким, пока он не будет изменен или оболочка не выйдет, в зависимости от того, что произойдет раньше:
$ USER=hello sh -c 'echo $USER'
hello
$ echo $USER
torek
$ export USER=hello
$ sh -c 'echo $USER'
hello
$ echo $USER
hello