マスターをGithubにGitプッシュできません-'origin 'はgitリポジトリではないようです/権限が拒否されました


84

この質問は、リベース、ブランチ、マージを理解する上での私の問題と、問題に関連しています。

リモートリストに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への接続を停止します。

ブランチ「origin」を削除していないので、これは奇妙です。

私のgitツリーは

  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のパスフレーズを与える必要があるようです。

sshキーに依存するのではなく、Githubにパスフレーズを要求させるにはどうすればよいですか?


ちょうど私の答えを更新しました。Sshパラメータがすべてではありません。user.nameとgithub.userも重要です
VonC 2009年

いくつかのssh構成チェックを使用して、私の回答を再度更新しました
VonC 2009年

「許可が拒否されました(公開鍵)。」実際には、公開鍵を使用してログインしようとしたが、公開鍵へのアクセスが許可されていないのではなく、許可が拒否されたことを意味します。
Xiong Chiamiov 2009年

私の問題は、別のシステムからの別のsshキーでした。もう一方のキーをアップロードしましたが、すべて問題ありませんでした。私はssh-vgit@github.comトリックでそれを見つけました。
nalply 2010

回答:


96

何を

$ 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

(実際には、「origin」や「origin2」ではなく「github」という名前を使用します)


許可が拒否されました(公開鍵)。
致命的:リモートエンドが予期せずハングアップした

GitHubヘルプガイドに記載されいるように gitHubIDがローカルの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

GitHubssh接続が拒否される理由に関する詳細情報が必要です。

公開鍵を正しく入力したことも確認してください( ' =='で終わる必要があります)。
秘密鍵ではなく公開鍵を貼り付けてください。公開鍵は次のようになります。

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

それが機能する場合は、sshクライアントからキーがGitHubに送信されていないことを意味します。


1
残念ながら、私はあなたに2回以上投票することはできません!私はこの問題を2週間に2回経験し、グーグルした後、このSO投稿を見つけるたびに問題が発生しました。ありがとう!:)
Ionuț Staicu 2010

1
私はこれと格闘していました-私はすべてのgitconfigを変更しました、しかしssh-addは私が逃したステップでした-どうもありがとう!
metadaddy 2011

これは、このすばらしい回答のコンテキストでのほんの小さな提案でしたが、「Origin」の名前を「GitHub」(またはサーバー名)に変更することについて少し気に入っています。これは、送信先の概念化に非常に役立ちます。
Alex C

これは私にとってもうまくいきました。githubの指示に従えば、起源が何であるかはすぐにはわかりません。
ニック2011

help.github.com/win-set-up-git最後までフォローしてください-それは私を助けました。許可が拒否されました(公開鍵)。-ローカルマシンでgit用のsshキーを設定したことを意味します。ssh-keygen -t rsa -C "your_email@youremail.com"
Roger Alien

28

これはリモコンの問題です。あなたがそうするときgit push origin masteroriginはリモートで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の答えが最善ですが、私にとってうまくいった部分は非常に単純で、他の多くの可能な答えの中に埋もれています。私と同じように、「Rails入門」チュートリアルの実行中にこの問題が発生し、公開/秘密SSHキーを設定していませんでした。

もしそうなら、これを試してください:

  1. $>cd ~/.ssh

  2. $>ls

  3. lsの出力がknown_hosts他に何もない場合は、http//help.github.com/mac-key-setup/にアクセスし、「キーの生成」セクションの指示に従ってください。

これらの手順を実行した後、「git pushoriginmaster」コマンドが機能しました。


このページを探していました。どうもありがとう!= D
Hugo Mota

それは私の問題を解決しました。私のOSはMacOS Xで、「Ruby on Rails 3チュートリアル」の本を読んでいて、必要なときにセクション1.3.4でスタックしgit push origin master.ました。GitとRailsをセットアップするのは初めてでした。うまくいけば、これは他の人々を助けました。
sivabudh 2011

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 2011

1
@Arrowmaster:Windowsを使用している場合は、~/_netrc( ' _'ではなく ' .')を使用する必要があることに注意してください
VonC

コメントありがとうございます、やってみます!
ケン

これは私のために働いた。ありがとう。これはバグなのかしら。
ラリーバトル

1

これは、gitエラーメッセージが誤解を招くもう1つのケースだと思います。通常、私がそのエラーを見たとき、それはsshの問題が原因です。公開sshキーをgithubアカウントに追加しましたか?

編集:また、xinet.dフォーラムの投稿では、ユーザーがシステムからプルできるように、サービスとしてgit-daemonを実行することに言及しています。githubにプッシュするためにgit-daemonを実行する必要はありません。


1
公開鍵をgithubアカウントに追加しました。--Gitにリモートブランチを追加した後に問題が発生しました。
レオ・レオポルド・ヘルツ준 영

1
新しいsshキーペアを作成しました。新しいキーをGithubに貼り付け、古いキーをGithubから削除しました。同じ問題が解決しません。
レオ・レオポルド・ヘルツ준 영

1

同じ問題が発生し、GitHubのアカウントに〜/ .ssh /id_rsa.pubのコンテンツを追加しました。その後、もう一度やり直しgit push origin masterてください。うまくいくはずです。


0

覚えておくべき重要なことは、「origin」は使用する必要のある値ではないということです...「origin」をレポの名前に置き換えたときにうまくいきました。


0

上記の回答が対処していない可能性の1つは、シェルからsshアクセスがない可能性があることです。つまり、sshサービスがブロックされているネットワーク(一部の大学のネットワークではこれを行っています)にいる可能性があります。その場合、githubサービスだけでなく、他のsshサービスも取得できます。これが問題であるかどうかは、他のsshサービスを使用してテストできます。これは私の場合です。


0

私はこの問題を抱えており、上記の多くの解決策(構成ファイル、デバッグsshなど)を含むさまざまな解決策を試しました。結局、オンサイトで新しいリポジトリを作成するときのgithubの指示に従って、gitpushに-uスイッチを含めることで問題を解決しました-Githubnew Repository

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.