2015-05-31 2 views
1

Я обнаружил, что проект OSS, который я внес, переместился в github. Я установил hg-git и клонировал локальное репо из git: // URL; то я сделал изменения.Изменение вверх по течению от локального (hg-git) клона от (github) оригинала до fork

Я тогда понял, что я действительно хотел свою собственную вилку для гитхитов, поэтому я сделал один; но я не смог точно определить, как переключить существующее местное репо. Я изменил локальные настройки репо, чтобы использовать git: // URL моей вилки, и он может тянуть; но я не могу подтолкнуть свои изменения. Он говорит мне использовать https: // URL, но когда я делаю это изменение, я не могу ни тянуть, ни толкать - я получаю ошибку 406, «неприемлемо».

Работа, выполняемая в локальном репо, минимальна, поэтому я могу ее переделать, но было бы проще, если бы местное репо и вилка могли просто подключиться сейчас.

UPDATE

Я установил Github для Windows, так что я мог управлять ключ SSH. Он сгенерировал ключ (github_rsa) и привязал его к моей учетной записи Github.

Я отредактировал файл hgrc и добавил настройку [ui]ssh=, указывая на местную команду git 'ssh' (заложенную в %APPDATA%\Local\Github).

С этим, если я захожу в окно «git-shell», которое, как я думаю, порождает ssh-agent, тогда я могу вводить такие команды, как «hg incoming» и соединение. Таким образом, я правильно прав удаленного репо, и в рамках экосистемы git-shell у меня есть ключи SSH правильно настроены.

Из обычного окна CMD.EXE в той же команде появляется сообщение «Permission denied (publickey)». Из TortoiseHg появляется такая же ошибка, когда я пытаюсь выполнить «входящее» действие. Я бы предпочел продолжать использовать TortoiseHg, но я не уверен, как заставить его использовать SSH.

FINAL UPDATE

По какой-то причине, TortoisePlink не хочет играть с SSH сервером GitHub, по крайней мере, не с Github-для-Windows-сгенерированного ключа. Таким образом, у меня все еще установлен Github для Windows (не обязательно плохо, но лишнее для того, что я хотел сделать).

Чтобы получить рт.ст. и TortoiseHg для подключения, я должен был изменить мои настройки проекта:

[ui] 
ssh = %USERPROFILE%\AppData\Local\GitHub\<salt>\bin\ssh -i %USERPROFILE%\.ssh\github_rsa 

То есть: точка команды SSH, установленная с портативным GitHub, и указать GitHub сгенерированной клавиши на командная строка. С этой конфигурацией мне не нужен ssh-agent для запуска.

+0

Вы должны иметь возможность использовать с помощью нового 'git + ssh: // '.Можете ли вы опубликовать точную ошибку? – moswald

ответ

1

Вам нужно нажать через SSH, то есть вам нужно нажать через:

hg push git+ssh://[email protected]/<login>/<repo> 

Обратите внимание на использование [email protected] вместо логина в первой части URL-адреса. Это действительно имеет значение; сервер будет определять ваши учетные данные с помощью поставляемого ключа SSH.

Возможно, вам также придется добавить свой ключ ssh в свою учетную запись GitHub сначала (за step 4 of this page).

Предполагается, что вы создали вилку исходного хранилища GitHub через интерфейс GitHub; нажатие на пустой репозиторий с помощью hg-git может потребовать дополнительных шагов.

+0

Ваш ответ помог, но я не совсем там, где хочу быть; см. обновление. –

+0

Я сам не работаю на Windows, но у Bitbucket есть файлы справки [здесь] (https://confluence.atlassian.com/display/BITBUCKET/Set+up+SSH+for+Mercurial) и [здесь] (https: //confluence.atlassian.com/display/BITBUCKET/Configure+multiple+SSH+identities+for+TortoiseHg), которые расскажут вам, как настроить ssh на Windows для Mercurial и TortoiseHg, соответственно (просто отключите bitbucket.org для github.com в URL-адресах). Чтобы добавить сгенерированный открытый SSH-ключ к GitHub через веб-интерфейс, см. [Здесь] (https://help.github.com/articles/generating-ssh-keys/#step-4-add-your-ssh-key- на вашем счету). –

+0

Я даю ответ, но мне пришлось много раздумывать над тем, чтобы наконец-то воспользоваться моим набором инструментов с помощью github. –

Смежные вопросы