Невозможно выполнить Git-push master для Github - "origin", по-видимому, не является хранилищем git / разрешение отклонено

Этот вопрос связан с моей проблемой понимания перебазирования, ветвления и слияния, а также с проблемой

Как вы можете зафиксировать свою учетную запись на github, если в вашем удаленном списке есть teamMate?

Я узнал, что у других людей была такая же проблема. Проблема, похоже, связана с /etc/xinet.d/.

Проблема: не удалось перенести мою локальную ветку в основную ветку на Github

я бегу

git push origin master

я получил

fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Сообщение об ошибке подсказывает мне, что ветка 'origin' отсутствует в моем локальном репозитории git. Таким образом, Git перестает подключаться к Github.

Это странно, так как я не удалил ветку 'origin'.

Мое мерзавец дерево

  dev
* master
  ticgit
  remotes/Math/Math
  remotes/Math/master
  remotes/origin/master
  remotes/Masi/master

Как вы можете отправить свою локальную ветку на Github, если у вас есть ветка teamMate в вашей локальной Git?


Ответ VonC решает основную проблему. Я поставил пароли к своим ключам SSH.

я бегу

$git push github master     

я получил

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

Кажется, мне нужно как-то дать пароль для Git.

Как вы можете заставить Github запрашивать пароль, а не полагаться на ключ ssh?

9 ответов

Решение

Что значит

$ git config --get-regexp '^(remote|branch)\.'

возвращает (выполняется в вашем git-хранилище)?

Origin - это соглашение о присвоении имен по умолчанию для ссылки на удаленный Git-репозиторий.

Если это не относится к GitHub (а скорее к пути к вашему репозиторию товарища по команде, путь, который больше не может быть действительным или доступным), просто добавьте другой источник, как в этой записи Bloggitation.

$ git remote add origin2 git@github.com:myLogin/myProject.git
$ git push origin2 master

(Я бы на самом деле использовал имя "github", а не "origin" или "origin2")


В доступе отказано (publickey).
фатальный: удаленный конец неожиданно завис

Проверьте, правильно ли ваша личность на gitHub объявлена ​​в вашем локальном репозитории Git, как указано в справочном руководстве GitHub. (и user.name, и github.name - и github.token)

Затем блог Stonean предлагает (как и Марсио Гарсия):

$ cd ~/.ssh
$ ssh-add id_rsa

Aral Balkan добавляет: создать файл конфигурации

Решением было создать файл конфигурации в ~/.ssh/, как указано в нижней части раздела OS X на этой странице.

Вот файл, который я добавил согласно инструкциям на странице, и мои толчки снова начали работать:

Host github.com
User git
Port 22
Hostname github.com
IdentityFile ~/.ssh/id_rsa
TCPKeepAlive yes
IdentitiesOnly yes

Вы также можете опубликовать результат

ssh -v git@github.com

чтобы получить больше информации о том, почему соединение GitHub SSH отклоняет вас.

Проверьте также, что вы правильно ввели свой открытый ключ (он должен заканчиваться на '==").
Не вставляйте свой закрытый ключ, но ваш открытый. Открытый ключ будет выглядеть примерно так:

ssh-rsa AAAAB3<big string here>== tek...@gmail.com 

(Примечание: вы использовали парольную фразу для своих ключей SSH? Было бы проще без парольной фразы)

Проверьте также URL-адрес, используемый при нажатии (git@github.com/...не git://github.com/...)

Убедитесь, что у вас есть агент SSH для использования и кеширования вашего ключа.

Попробуй это:

 $ ssh -i path/to/public/key git@github.com

Если это работает, то это означает, что ваш ключ не отправляется на GitHub вашим ssh-клиентом.

Это проблема с вашим пультом. Когда вы делаете git push origin master, origin это пульт и master это ветвь, которую вы нажимаете.

Когда вы делаете это:

git remote

Бьюсь об заклад, список не включает origin, Чтобы повторно добавить исходный пульт:

git remote add origin git@github.com:your_github_username/your_github_app.git

Или, если он существует, но отформатирован неправильно:

git remote rm origin
git remote add origin git@github.com:your_github_username/your_github_app.git

Ответ VonC самый лучший, но та часть, которая сработала для меня, была очень простой и в некотором роде похоронена среди множества других возможных ответов. Если вы похожи на меня, вы столкнулись с этой проблемой, выполняя учебное пособие "Приступая к работе с rails", и вы НЕ установили свои публичные / приватные ключи SSH.

Если так, попробуйте это:

  1. $>cd ~/.ssh

  2. $>ls

  3. Если вывод команды ls known_hosts и ничего больше, посетите: http://help.github.com/mac-key-setup/ и начните следовать инструкциям из раздела "Генерация ключа" и вниз.

После выполнения этих инструкций сработала моя команда "git push origin master".

У меня та же проблема, и я думаю, что брандмауэр блокирует протокол git. Итак, в конце я должен прибегнуть к использованию https:// для извлечения и отправки. Однако это всегда побудит пользователя ввести пароль...

Вот пример того, что работает для меня (просто поделиться с теми, кто не может использовать протокол git://:)

git fetch https://[user-name]@github.com/[user-name]/[project].git

Если вышеперечисленное работает, вы можете удалить происхождение и заменить на

git remote rm origin  
git remote add origin https://[user-name]@github.com/[user-name]/[project].git

У меня возникла та же проблема, и я просто добавил содержимое ~/.ssh/id_rsa.pub в свою учетную запись в GitHub. После этого просто попробуйте еще раз git push origin master, он должен работать.

Я думаю, что это еще один случай, когда сообщения об ошибках Git вводят в заблуждение. Обычно, когда я видел эту ошибку, это из-за проблем с ssh. Вы добавили свой публичный ключ ssh в свою учетную запись на github?

Изменить: Кроме того, сообщение на форуме xinet.d относится к запуску git-daemon в качестве службы, чтобы люди могли выходить из вашей системы. Нет необходимости запускать git-daemon для отправки на github.

Им нужно помнить, что "происхождение" - это не то значение, которое вам, возможно, нужно использовать... это сработало для меня, когда я заменил "происхождение" именем репо.

Одна из причин, по которой вышеприведенные ответы не рассматриваются, заключается в том, что у вас может не быть доступа ssh из вашей оболочки. То есть вы можете находиться в сети (некоторые сети колледжей делают это), где служба ssh заблокирована. В этом случае вы сможете получать не только службы github, но и любые другие службы ssh. Вы можете проверить, если это проблема, попытавшись использовать любой другой сервис SSH. Это было со мной.

У меня была эта проблема, и я пытался решить ее различными способами, включая многие из перечисленных выше (файл конфигурации, отладка ssh и т. Д.). В конце концов я решил эту проблему, включив ключ -u в команду git push в соответствии с инструкциями github при создании нового репозитория на месте - Github new Repository.

Другие вопросы по тегам