Я использовал git для синхронизации двух копий моего проекта, один из них - мой локальный блок, другой - тестовый сервер. Эта проблема возникает, когда я захожу на наш удаленный сервер разработки с использованием ssh;
git clone me@me.mydevbox.com:/home/chris/myproject
Initialized empty Git repository in /tmp/myproject/.git/
Password:
bash: git-upload-pack: command not found
fatal: The remote end hung up unexpectedly
fetch-pack from 'me@me.mydevbox.com:/home/chris/myproject' failed.
(имена файлов были изменены, чтобы защитить виновных ...!)
Обе коробки работают под управлением Solaris 10 AMD. Я немного покопался, если я добавлю --upload-pack=$(which git-upload-pack)
команду works (и докажет, что $PATH
содержит путь к «git-upload-pack» согласно решению RTFM), но это действительно раздражает, плюс «git push» не работает, потому что я не думаю, что есть --unpack=
вариант.
Кстати, все команды git работают нормально с моего локального компьютера, это та же версия программного обеспечения (1.5.4.2), установленная на том же устройстве NFS в /usr/local/bin
.
Кто-нибудь может помочь?
источник
/opt/local/bin
. Добавление этого в мой.bashrc
viaPATH=$PATH:/new/path/here
работал для меня."ssh .. echo \$PATH"
Команда покажет вам путь на удаленную машине, которая может отличаться от вашего входа в пути, но это важная вещь , чтобы получить право сделать его работу, и вы можете сделать это, установив переменную PATH , чтобы включить мерзавец в.bashrc
на удаленная машина. Согласно man-странице,.profile
/.bash_profile
читаются только для интерактивных входов в систему.Вы также можете использовать опцию "-u", чтобы указать путь. Я считаю это полезным на машинах, где мой .bashrc не получен в неинтерактивных сессиях. Например,
источник
Основываясь на ответе Брайана , путь загрузки пакета можно установить постоянно, выполнив следующие команды после клонирования, что устраняет необходимость
--upload-pack
в последующих запросах извлечения / извлечения. Аналогично, настройка receive-pack устраняет необходимость--receive-pack
в push-запросах.Эти две команды эквивалентны добавлению следующих строк в репозиторий
.git/config
.Частые пользователи
clone -u
могут быть заинтересованы в следующих псевдонимах. Myclone должен быть самоочевидным. myfetch / mypull / mypush можно использовать в репозиториях, конфигурация которых не была изменена, как описано выше, путем заменыgit push
наgit mypush
и т. д.источник
--receive-pack
опцииgit-push
!git push --receive-pack /full/path/to/git-receive-pack
сами, настраивайте до тех пор, пока это не будет успешно, затем измените .git / config (или запустите "git config"), чтобы окончательно установить путь к полученному пакету.Я нашел и использовал (успешно) это исправление:
Спасибо Полу Джонстону .
источник
В Mac OS X и некоторых других Unix по крайней мере пользовательский путь компилируется в sshd по соображениям безопасности, поэтому те из нас, кто устанавливает git как / usr / local / git / {bin, lib, ...}, могут столкнуться с проблемами в качестве git исполняемые файлы не находятся в предварительно скомпилированном пути. Чтобы переопределить это, я предпочитаю изменить мой / etc / sshd_config, изменив:
в
и затем создайте файлы ~ / .ssh / environment по мере необходимости. Мои пользователи git имеют в своем файле ~ / .ssh / environment следующее:
Обратите внимание, что расширение переменной не происходит, когда файл ~ / .ssh / environment читается так:
не будет работать.
источник
Решение Мэтта не работает для меня на OS X, но решение Пола сработало.
Короткая версия по ссылке Павла:
Создано
/usr/local/bin/ssh_session
со следующим текстом:Выполнение:
Добавьте следующее к
/etc/sshd_config
:источник
Для bash его нужно поместить в .bashrc, а не .bash_profile (.bash_profile также только для оболочек входа в систему).
источник
Я получил эти ошибки с версией MsysGit.
Следуя всем советам, которые я мог найти здесь и в другом месте, я оказался:
на сервере (Win XP с Cygwin SSHD) это наконец исправлено.
Я все еще использую версию клиента MsysGit
Я подозреваю, что некоторая работа все еще необходима в этой части использования Git .. (SSH + легкость тянуть / толкать в Windows)
источник
Как Йохан много раз указывал на его .bashrc, который нужен:
ln -s .bash_profile .bashrc
источник
Вы должны добавить
перед этой строкой в .bashrc:
В противном случае все операторы экспорта не будут выполнены ( см. Здесь ).
источник
Мой случай на Win 10 с GIT bash, и у меня нет GIT в стандартном месте. Вместо этого у меня есть git в / app / local / bin. Я использовал команды, предоставленные @Garrett, но мне нужно изменить путь, чтобы начать с двойной /:
В противном случае GIT добавит ваш путь к GIT Windows впереди.
источник
Для zsh вы должны поместить его в этот файл: ~ / .zshenv
Например, в OS X с использованием пакета git-core от MacPorts:
$ echo 'export PATH = / opt / local / sbin: / opt / local / bin: $ PATH'> ~ / .zshenv
источник
У меня были проблемы с подключением к репозиторию Gitolite с использованием SSH из Windows, и оказалось, что моя проблема была PLINK! Он продолжал спрашивать у меня пароль, но ssh gitolite @ [host] вернул бы список репо в порядке.
Проверьте переменную среды: GIT_SSH. Если он установлен на Plink, попробуйте его без какого-либо значения ("set GIT_SSH =") и посмотрите, работает ли это.
источник
Добавьте свое местоположение в
git-upload-pack
файл .bashrc удаленного пользователя git.источник
Это может быть так же просто, как установка git на удаленном хосте (как это было в моем случае).
Или эквивалент для других систем управления пакетами.
источник