Git / GitHubはマスターにプッシュできません


151

私はGit / GitHubを初めて使用し、問題が発生しました。テストプロジェクトを作成し、ローカルリポジトリに追加しました。今私はリモートリポジトリにファイル/プロジェクトを追加しようとしています。

これが私がやったことです(そしてこれはうまくいきました)-

git remote add origin git://github.com/my_user_name/my_repo.git

ここで、次のコマンドを使用してリポジトリをGitHubにプッシュしようとすると、次のエラーが発生します-

git push origin master

エラー-

fatal: remote error:
You can't push to git://github.com/my_user_name/my_repo.git
Use git@github.com:my_user_name/my_repo.git

すべてのgithubページの下部にヘルプリンク(help.github.com)があります。ヘルプはこれを含む多くのトピックを説明します。それらを読んでから、あなたが理解していない特定の事柄について質問することをお勧めします。
jamessan '25

21
jamessanがヘルプページの特定の場所を指し示していた場合、それはより便利でした。
Deonomo

回答:


244

GitHubは、Gitプロトコルのプッシュをサポートしていません。これは、URLの先頭を使用することで示されますgit://。エラーメッセージに示さgit@github.com:my_user_name/my_repo.gitれているように、プッシュする場合はhttps://、GitHubがリポジトリについて示しているURLを使用して、SSH URL または「スマートHTTP」プロトコルを使用する必要があります。

(更新:驚いたことに、これによって「https」は「スマートHTTP」を意味するのではないことを示唆していると一部の人々は考えていたようです。以前はプッシュを許可しない「ダムHTTP」プロトコルがGitにあったGitHubの用途が導入されたことを「スマートHTTP」 -のいずれかのいずれかの上に使用することができhttpたりhttps。下のリンクで説明されているGitリポジトリで使用される転送プロトコルとの違い)。

元のURLを変更したい場合は、次のようにします。

git remote set-url origin git@github.com:my_user_name/my_repo.git

または

git remote set-url origin https://github.com/my_user_name/my_repo.git

詳細については、10.6 Git内部-転送プロトコルを参照してください


だから私はURLを変更してプッシュを再試行し、今すぐこのエラーを取得しました-エラー:my_user_name / my_repo.gitは存在しません。正しく入力しましたか?致命的:リモートエンドが突然ハングアップした
kapso '25 / 09/25

設定したURLは、GitHub上のリポジトリのページからコピーして貼り付けることができるものですか?(ちなみに大文字と小文字は区別されます。)
Mark Longair '25

1
OK、プッシュする前にGitHub上にリポジトリを作成する必要があります。そうすると、リポジトリを複製またはプッシュする方法に関する指示が表示されます。
マークロングエアー、2011

1
私はこれと同じ問題を抱えていました。実際の問題は、github.comとユーザー名の間にスラッシュ「/」があることでした。そして、それはコロン ":"であるべきです。それが問題です:D
Wilmer E. Henao 2013年

2
@WilmerEHenaoH:それはあなたの問題であった可能性がありますが、それは質問または私の回答の問題ではありませんでした;)(興味のために、gitのSSH URLの2つのスタイルについて混乱が時々ありますホスト名とパスを区切るためのコロン、およびその他は区切りません。)
Mark Longair

37

使用マークLongairの答えが、リポジトリにHTTPSリンクを使用してください:

git remote set-url origin https://github.com/my_user_name/my_repo.git

その後使用できますgit push origin master


1
わたしにはできる。次に、タイプするだけgit pushでも機能します。
youngzy 2015

13

Mark Longairのソリューションの使用git remote set-url...は非常に明確です。.git / configファイルのこのセクションを直接編集することでも、同じ動作を得ることができます。

前:

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git://github.com/my_user_name/my_repo.git

後:

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@github.com:my_user_name/my_repo.git

(逆に、git remote set-url...呼び出しによって上記の変更が生成されます。)


2

これに新しい誰かのためのこれへの簡単な解決策があります:

ローカルの.gitディレクトリ(config)にある構成ファイルを編集します。以下に変更git:https:ます。

[remote "origin"]
    url = https://github.com/your_username/your_repo

1
不正解です。httpsプロトコルはプッシュを許可しません。「プロGit」の本のセクション4.1.4「HTTP / Sプロトコル」を参照してください。リンク:git-scm.com/book/en/v2
Kevin J. Rice

@ KevinJ.Rice:ええと、それはどこでそれを言うのですか?GithubはスマートHTTPプロトコルを使用しているため、プッシュを問題なく行うことができます。
Martijn Pieters

1

Gitクライアントのアップグレード後にこの問題が発生、突然私のリポジトリがプッシュできなくなりました。

url私の現在アクティブなリモートが同じ値を持っていて、url正常に動作していたとしても、古いリモートの値が間違っていたことがわかりました。

しかし、pushurlパラメータもあったので、古いリモートに追加するとうまくいきました:

前:

[remote "origin"]
    url = git://github.com/user/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    pushurl = git@github.com:user/repo.git

注:ファイル「config」のこの部分は古くから使用されていませんでしたが、新しいクライアントは間違ったURLについて不平を言っていました。

[remote "composer"]
    url = git://github.com/user/repo.git
    fetch = +refs/heads/*:refs/remotes/composer/*

だから私pushurlは古いリモートにパラメータを追加しました:

[remote "composer"]
    url = git://github.com/user/repo.git
    fetch = +refs/heads/*:refs/remotes/composer/*
    pushurl = git@github.com:user/repo.git

1

このエラーは、次のような呼び出しを使用してリポジトリを複製するときに発生します。

git clone git://github.com/....git

これは基本的に、変更をプッシュできないプルオンリーユーザーとして設定します。

私は私のリポジトリの.git/configファイルを開いて行を変更することでこれを修正しました:

[remote "origin"]
    url = git://github.com/myusername/myrepo.git

に:

[remote "origin"]
    url = ssh+git://git@github.com/myusername/myrepo.git

ユーザーとのこのssh+gitプロトコルgitは、Githubが推奨する認証メカニズムです。

ここで述べた他の回答は技術的には機能しますが、すべてsshをバイパスしているようで、手動でパスワードを入力する必要がありますが、これはおそらく望ましくありません。



0

私はpubhubをgithub.comに追加し、これは成功しました:

ssh -T git@github.com

しかし、これを間違って実行した後、「プッシュできません」というエラーを受け取りました。

git clone git://github.com/mygithubacct/dotfiles.git
git remote add origin git@github.com:mygithubacct/dotfiles.git
...edit/add/commit
git push origin master

私がやるべきだったことをする代わりに:

mkdir dotfiles
cd dotfiles
git init
git remote add origin git@github.com:mygithubacct/dotfiles.git
git pull origin master
...edit/add/commit
git push origin master

0

https代わりにグローバルに設定するにはgit://

git config --global url.https://github.com/.insteadOf git://github.com/


-1

yuoがそれを乗り越える最も速い方法はorigin、それが与える提案で置き換えることです。

の代わりにgit push origin master、次を使用します。

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