Не удалось выполнить Git -push master для Github

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

Как вы можете зафиксировать свою учетную запись 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".

Дерево git

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

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


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

Я запустил

$git push github master     

Я получаю

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

Кажется, мне нужно каким-то образом предоставить кодовую фразу для git.

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

Ответ 1

Что делает

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

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

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

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

$ git remote add origin2 [email protected]:myLogin/myProject.git
$ git push origin2 master

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


Разрешение отклонено (публикация).
фатальный: удаленный конец неожиданно повесил трубку

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

Затем stonean blog предлагает (как Marcio Garcia):

$ 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 [email protected]

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

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

ssh-rsa AAAAB3<big string here>== [email protected] 

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

Проверьте также URL, используемый при нажатии ([email protected]/..., not git://github.com/...)

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

Попробуйте следующее:

 $ ssh -i path/to/public/key [email protected]

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

Ответ 2

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

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

git remote

Держу пари, что в список не входит origin. Чтобы повторно добавить пульт дистанционного управления:

git remote add origin [email protected]:your_github_username/your_github_app.git

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

git remote rm origin
git remote add origin [email protected]:your_github_username/your_github_app.git

Ответ 3

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

Если да, попробуйте следующее:

  • $>cd ~/.ssh

  • $>ls

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

После выполнения этих инструкций выполнялась моя команда "начальный хозяин" git.

Ответ 4

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

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

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

Ответ 5

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

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

Ответ 9

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