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 への接続を停止します。

ブランチ「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 にパスフレーズを要求させるにはどうすればよいですか?

4

9 に答える 9

97

何が

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

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

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

GitHub を参照していない場合 (チームメイト リポジトリへのパスであり、有効または利用できなくなっている可能性があるパス)、このブログのエントリのように、別のオリジンを追加するだけです。

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

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


許可が拒否されました (公開鍵)。
致命的: リモート エンドが予期せず電話を切りました

GitHub ヘルプ ガイドに記載されているように、ローカル Git リポジトリで gitHub ID が正しく宣言されているかどうかを確認します。(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/...( 、ないgit://github.com/...)を押すときに使用されるURLも確認してください

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

これを試して:

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

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

于 2009-05-28T18:27:27.213 に答える
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
于 2009-05-28T18:53:09.160 に答える
10

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

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

  1. $>cd ~/.ssh

  2. $>ls

  3. ls のknown_hosts出力.

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

于 2010-04-06T00:34:54.973 に答える
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
于 2011-02-25T02:36:12.273 に答える
1

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

于 2009-10-06T22:32:55.027 に答える
1

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

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

于 2009-05-28T17:40:55.000 に答える
0

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

于 2012-04-08T21:13:40.743 に答える
0

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

于 2011-09-21T21:24:37.757 に答える