web-dev-qa-db-ja.com

マスターをGithubにGit-Pushできません-'Origin'はgitリポジトリではないようです/許可が拒否されました

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

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

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

何をする

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

戻ります(gitリポジトリ内で実行されます)?

Originは、リモートGitリポジトリを参照するためのデフォルトの命名規則です。

GitHubを参照していない場合(チームメイトリポジトリへのパス、有効または使用できなくなったパス)、次のように別のOriginを追加します Bloggitation entry

$ git remote add Origin2 [email protected]:myLogin/myProject.git
$ git Push Origin2 master

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


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

GitHubヘルプガイド で説明されているように、ローカルGitリポジトリでgitHub IDが正しく宣言されているかどうかを確認します。 (user.nameとgithub.nameの両方-およびgithub.token)

次に、 stonean blog が示唆します( Marcio Garcia ):

$ cd ~/.ssh
$ ssh-add id_rsa

アラルバルカン 追加:構成ファイルの作成

解決策は、 このページのOS Xセクションの下部 で概説されているように、〜/ .ssh /の下に構成ファイルを作成することでした。

ページの指示に従って追加したファイルは次のとおりです。プッシュが再び機能し始めました。

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]/...ではなく、git://github.com/...

キーを使用およびキャッシュするSSHエージェントがあることを確認します。

これを試して:

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

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

96
VonC

これは、リモートの問題です。 git Push Origin masterOriginはリモート、masterはプッシュするブランチです。

これを行うとき:

git remote

リストにはOriginが含まれていないと思います。 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
28
Sarah Mei

VonCの答えは最高ですが、私のために働いた部分は非常にシンプルで、他の多くの可能な答えの中に埋もれています。私のような人なら、「Railsを始めよう」チュートリアルの実行中にこの問題に遭遇し、公開/秘密SSHキーをセットアップしていませんでした。

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

  1. $>cd ~/.ssh

  2. $>ls

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

これらの指示を実行した後、「git Push Origin master」コマンドが機能しました。

10
johnnygoodman

同じ問題があり、ファイアウォールがgitプロトコルをブロックしていると思います。そのため、最終的にはhttps://を使用してフェッチとプッシュを行う必要があります。ただし、これは常にユーザーにパスワードを入力するよう要求します...

ここに私のために働くものの例があります(それらを共有するために、git://プロトコルを使用するだけです:)

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

上記が機能する場合は、Originを削除して、

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

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

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

1
Aaron

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

1
Julio Menendez

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

0
sjpknight

彼らが覚えておくべき重要なことは、「Origin」はあなたが使用する必要があるかもしれない値ではないということです...「Origin」をレポの名前に置き換えたとき、それは私のために働きました。

0
ATSiem

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

0
Sravan