Невозможно получить расширения git, чтобы что-то выдвинуть, чтобы решить проблемы SSH с github - PullRequest
6 голосов
/ 06 ноября 2010

Я пытаюсь использовать расширения git, и мне до сих пор это нравится, но мне не удается перейти на github.Следующая команда прекрасно работает в git bash:

git push "origin" master:master

, а затем, когда я нажимаю с расширениями git, я получаю это:

C:\Program Files\Git\bin\git.exe push "origin" master:master
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

Done

В настройках git просто выбрана openSSH, которую яхотел бы сохранить, потому что замазка кажется больше хлопот.

Удаленные адреса, которые я добавил в gitextensions, фактически единственная вещь, которую я сделал из bash только для проверки, - это приведенная выше команда и распределение ключей SSH.Все остальное настроено в расширениях git.Поэтому я полагаю, что все должно быть настроено правильно.Например, адрес электронной почты и имя правильные ...

ssh git@github.com

также подключается нормально, от bash

edit :

Так что я могувоспроизведите ошибку, поместив команду из git-extensions в cmd.Очевидно, есть разница между запуском из git bash и из cmd, и git-extensions запускает эту команду как команду windows ... какие-нибудь подсказки?

update : Если я выберу git-bashиз меню в git-extensions я получаю окно, равное точно так же, как когда я щелкаю правой кнопкой мыши в проводнике по моей папке репо и выбираю git bash здесь.Теперь в открытом из проводника я могу нажать, а в открытом из расширений - проблема с открытым ключом.

Ответы [ 7 ]

6 голосов
/ 06 ноября 2010

Вещи для проверки:

  1. Наличие HOME переменной среды.
  2. Наличие там %HOME%\.ssh\ и ключей RSA.

Когда вы запускаете git из командной строки, предпочтительно запускать git.cmd, поскольку он автоматически исправляет HOME:

@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%

Чтобы исправить расширения gite, определите переменную HOME и установите для нее то же значение, что и USERPROFILE

5 голосов
/ 06 ноября 2010

Хорошо, я решил это.

Я открыл git bash из расширений git и git bash, используя расширения оболочки explorer. Затем я запустил ssh -vvv git@github.com из обоих, чтобы увидеть разницу.

Оказалось, что из-за того, что я изменил расположение файла конфигурации git (я склонен время от времени переформатировать, поэтому c: \ documents and settings ... общеизвестно плохо для хранения всего, что я мог бы сохранить постоянным) при запуске из расширений git git также искал ключи ssh в другом месте. Поэтому я добавил папку .ssh, где находится мой файл git cofig, и теперь он работает нормально. Я думаю, что git-extensions устанавливает для переменной HOME для git значение, которое вы указали в качестве пути для файла конфигурации.

Так вот, это не было очевидно ...

2 голосов
/ 03 октября 2012

Правильный ответ - это ответ 'max' (установите вашу HOME env var вручную), но это может помочь некоторым понять, почему проблема возникает (поскольку Git привлекает больше пользователей по всему миру, это будет очень распространено) ,

Cygwin устанавливает $ HOME в / home / yourname, но эта переменная неизвестна в среде Windows. Так что если вы откроете окно bash и выполните env | grep HOME, вы увидите все три переменные 'HOME', упомянутые здесь, и вы можете задаться вопросом, почему Gitextensions не использует ваш правильный cygwin HOME - потому что его вызов файла .bat не видит его - он видит только то, что вы видите делать «установить» в консоли Windows.

Это загадочно, почему он не выполняет эту оценку позже и не получает правильный путь cygwin, так как знает, как вызывать bash, но (по крайней мере, в версиях до 2.41) вы должны сделать это ручное изменение в настройках или в .gitconfig.

1 голос
/ 05 мая 2016

Да, не задание переменной HOME было проблемой и для меня.

Задайте для переменной HOME значение %USERPROFILE% и заново создайте закрытый и открытый ключи, затем попробуйте клонировать - теперь это должно работать.

1 голос
/ 06 ноября 2010

Рад, что вы решили проблему.Поскольку это звучит как серьезная проблема, меня интересует разница между git-bash при запуске из GitExtensions.В GitExtensions есть настройка, которая может это исправить.Каталог% HOME% можно изменить в GitExtensios.По умолчанию он будет установлен в% HOMEDRIVE %% HOMEPATH%, но вы можете переопределить это.Изменение этого, вероятно, решит вашу проблему, поскольку вы предполагаете, что это проблема.Для этого откройте диалоговое окно настроек и перейдите на вкладку «Git».В разделе «Среда» вы можете установить путь% HOME%.

Буду признателен, если вы дадите мне знать, если это также решит проблему.Мне также интересно, что вызвало это в первую очередь.Возможно, я смогу улучшить проверку на наличие действительного каталога HOME.

1 голос
/ 06 ноября 2010

Когда вы запустите git bash напрямую, вы попадете в свою домашнюю папку для MSYS. Вы должны убедиться, что у вас есть ключ ssh (id_rsa?) В подпапке .ssh (относительно домашней папки).

0 голосов
/ 11 сентября 2012

Я вижу, что переменная HOME установлена ​​в USERPROFILE в расширениях git. Я могу добавить и зафиксировать, но не push / pull из удаленного репозитория. Я не могу подключиться к любому удаленному хранилищу. Мы используем http (не ssh) для подключения. Однако, используя git bash, я могу подключиться к пульту и сделать push / pull. Я поставил свою проблему Расширения GIT не подключаются к удаленному, но git bash делает и были направлены на эту проблему Однако я не могу решить свою проблему. Есть идеи?

...