마스터를 Github에 Git-push 할 수 없음- 'origin'이 git 저장소로 표시되지 않음 / 권한 거부 됨


84

이 질문은 rebase, branch 및 merge 이해 및 문제와 관련된 내 문제와 관련 이 있습니다.

원격 목록에 teamMate가있을 때 github 계정에 어떻게 커밋 할 수 있습니까?

나는 다른 사람들 도 같은 문제를 가지고 있다는 것을 알았습니다 . 문제는 /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에 대한 연결을 중지합니다.

나는 분기 '원점'을 제거하지 않았기 때문에 이상합니다.

내 자식 트리는

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

로컬 Git에 teamMate의 브랜치를 가지고있는 동안 어떻게 로컬 브랜치를 Github로 푸시 할 수 있습니까?


VonC의 답변은 주요 문제를 해결합니다. 내 ssh 키에 암호를 넣었습니다.

난 달린다

$git push github master     

나는 얻다

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

어떻게 든 Git에 대한 암호를 제공해야하는 것 같습니다.

Github에서 ssh 키에 의존하지 않고 암호를 요청하도록하려면 어떻게해야합니까?


내 대답을 업데이트했습니다. SSH 매개 변수가 전부는 아닙니다. user.name 및 github.user도 중요합니다
VonC

더 많은 ssh 구성 검사를 통해 내 대답을 다시 업데이트했습니다.
VonC

"권한이 거부되었습니다 (공개 키)." 실제로는 공개 키를 사용하여 로그인을 시도했으며 공개 키에 대한 액세스가 허용되지 않는 것이 아니라 권한이 거부되었음을 의미합니다.
Xiong Chiamiov

내 문제는 다른 시스템의 다른 ssh 키였습니다. 다른 키를 업로드했는데 모두 괜찮 았습니다. 나는 ssh -v git@github.com 트릭으로 그것을 발견했습니다.
nalply 2010 년

답변:


96

무엇을

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

return (git 저장소 내에서 실행 됨)?

Origin은 원격 Git 저장소를 참조하기위한 기본 명명 규칙 일뿐입니다.

GitHub를 참조하지 않는 경우 (그러나 팀원 저장소 경로, 더 이상 유효하지 않거나 사용 가능하지 않을 수있는 경로),이 Bloggitation 항목 과 같이 다른 출처를 추가 하십시오.

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

(실제로 'origin'또는 'origin2'가 아닌 'github'라는 이름을 사용합니다.)


권한이 거부되었습니다 (공개 키).
치명적 : 원격 끝이 예기치 않게 끊김

GitHub 도움말 가이드에 언급 된대로 gitHub ID가 로컬 Git 저장소에서 올바르게 선언되었는지 확인합니다 . (user.name 및 github.name-및 github.token)

그런 다음 stonean 블로그에서 제안합니다 ( Marcio Garcia도 마찬가지 ).

$ cd ~/.ssh
$ ssh-add id_rsa

Aral Balkan 추가 : 구성 파일 생성

해결책은 이 페이지의 OS X 섹션 하단에 설명 된대로 ~ / .ssh / 아래에 구성 파일을 만드는 것이 었습니다 .

페이지의 지침에 따라 추가 한 파일은 다음과 같습니다. 푸시가 다시 작동하기 시작했습니다.

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 키에 암호를 사용 했습니까? 암호없이 더 쉬울 것입니다)

( git@github.com/..., not git://github.com/...)을 누를 때 사용 된 URL도 확인하십시오.

키를 사용하고 캐시 할 SSH 에이전트가 있는지 확인하십시오.

이 시도:

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

작동하는 경우 키가 ssh 클라이언트에 의해 GitHub로 전송되지 않음을 의미합니다.


1
안타깝지만 두 번 이상 투표 할 수 없습니다! 나는 2 주에 두 번이 문제를 겪었고이 게시물을 찾을 때마다 Google을 검색했습니다. 감사! :)
Ionuț Staicu

1
나는 이것과 씨름하고 있었다-나는 모든 git 구성을 변경했지만 ssh-add는 내가 놓친 단계였습니다-정말 감사합니다!
metadaddy 2011

이 훌륭한 답변의 맥락에서 작은 제안 일뿐입니다.하지만 "Origin"의 이름을 "GitHub"(또는 서버 이름)로 바꾸는 것이 마음에 듭니다. 그것은 당신이 물건을 보내는 곳을 개념화하는 데 정말 도움이됩니다.
Alex C

이것은 나에게도 효과적이었습니다. github의 지침을 따르면 출처가 무엇인지 즉시 알 수 없습니다.
nick

help.github.com/win-set-up-git 끝까지 따르십시오. 권한이 거부되었습니다 (공개 키). -로컬 컴퓨터에서 git에 대한 ssh 키를 설정했음을 의미합니다. SSH-Keygen은 -t RSA -C "your_email@youremail.com"
로저 외국인

28

이것은 리모컨의 문제입니다. 당신이 할 때 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

10

VonC의 답변이 가장 좋지만 저에게 도움이 된 부분은 매우 간단했으며 다른 많은 가능한 답변에 묻혀 있습니다. 나와 같은 경우 "레일 시작하기"자습서를 실행하는 동안이 문제가 발생했으며 공개 / 개인 SSH 키를 설정하지 않았습니다.

그렇다면 다음을 시도하십시오.

  1. $>cd ~/.ssh

  2. $>ls

  3. ls의 출력이 known_hosts아닌 경우 http://help.github.com/mac-key-setup/을 방문 하여 "키 생성"섹션의 지침을 따르십시오.

이러한 지침을 실행 한 후 "git push origin master"명령이 작동했습니다.


이 페이지를 찾고있었습니다. 많은 것보다! = D
Hugo Mota

그것은 내 문제를 해결했습니다. 내 OS는 Mac OS X이고 "Ruby on Rails 3 Tutorial"책을 따르고 있었는데, 1.3.4 절에서 멈춰서 야 할 때 git push origin master.Git과 Rails를 처음 설정했습니다. 바라건대 이것은 다른 사람들을 도왔습니다.
sivabudh

4

나는 같은 문제가 있고 방화벽이 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

1
원하는 경우 ~/.netrc파일 저장소에서 암호를 사용할 수 있습니다 . 사용 curl방법에 대한 세부 사항을 찾아야하는 경우 git에서 HTTP (S) 전송에 사용하는에서 사용됩니다.
Arrowmaster

1
@Arrowmaster : Windows를 사용하는 경우 ~/_netrc( ' _'가 아니라 ' .') 를 사용해야합니다.
VonC

의견을 보내 주셔서 감사합니다.
ken

이것은 나를 위해 일했습니다. 감사. 이것이 버그인지 아닌지 궁금합니다.
Larry Battle

1

나는 그것이 잘못된 git 오류 메시지의 또 다른 경우라고 생각합니다. 일반적으로 그 오류를 보았을 때 ssh 문제로 인한 것입니다. 공개 SSH 키를 github 계정에 추가 했습니까?

편집 : 또한 xinet.d 포럼 게시물은 사람들이 시스템에서 가져올 수 있도록 git-daemon을 서비스로 실행하는 것을 언급하고 있습니다. git-daemon을 실행하여 github로 푸시 할 필요는 없습니다.


1
내 github 계정에 공개 키를 추가했습니다. -Git에 원격 분기를 추가 한 후 문제가 시작되었습니다.
Léo Léopold Hertz 준영

1
새 ssh 키 쌍을 만들었습니다. 새 키를 Github에 붙여넣고 Github에서 이전 키를 제거했습니다. 같은 문제가 지속됩니다.
Léo Léopold Hertz 준영

1

같은 문제가 발생하여 ~ / .ssh / id_rsa.pub의 내용을 GitHub의 내 계정에 추가했습니다. 그 후에 다시 시도 git push origin master하면 작동합니다.


0

기억해야 할 핵심은 'origin'은 사용해야 할 가치가 아니라는 것입니다 .'origin '을 repo의 이름으로 바꾸면 저에게 효과적이었습니다.


0

위의 답변으로 해결되지 않는 한 가지 가능성은 셸에서 ssh 액세스 권한이 없을 수 있다는 것입니다. 즉, ssh 서비스가 차단 된 네트워크 (일부 대학 네트워크에서이 작업을 수행함)에있을 수 있습니다.이 경우 github 서비스뿐만 아니라 다른 ssh 서비스도받을 수 있습니다. 다른 ssh 서비스를 사용하여 이것이 문제인지 테스트 할 수 있습니다.


0

나는이 문제가 있었고 위에 나열된 많은 것 (구성 파일, 디버그 ssh 등)을 포함하여 다양한 솔루션을 시도했습니다. 결국, 현장에서 새 저장소를 만들 때 github 지침에 따라 git push에 -u 스위치를 포함하여 해결했습니다. - Github new Repository

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.