Github「致命的:リモートオリジンはすでに存在しています」


466

Michael HartlのRailsチュートリアルに従っているのですが、エラーに遭遇しました。

Githubにサインアップして新しいSSHキーを発行し、新しいリポジトリを作成しました。しかし、ターミナルに次の行を入力すると、次のエラーが発生します。

Parkers-MacBook-Pro:.ssh ppreyer$ git remote add origin git@github.com:ppreyer/first_app.git
fatal: remote origin already exists.

他の誰かがこの問題に遭遇したかどうか疑問に思いましたか?


gitリポジトリをまだ作成している場合は、.git/configファイルを調べて、オリジンがまだ宣言されていないかどうかを確認します。
DenysSéguret12年

3
私は同じ問題に直面していて、コマンド「git remote rm origin」を使用してから、コマンドgit remote add origin URLを使用しました。
Akhzar Nazir

@AkhzarNazirこれを回答として追加してください。それは私のために働いた。
Pamela Sillah

回答:


896

TL; DRあなたは既存のリモートを更新するだけです:

$ git remote set-url origin git@github.com:ppreyer/first_app.git

ロングバージョン:

エラーメッセージが示すように、同じ名前で設定されたリモートがすでに存在します。したがって、新しいリモートを別の名前で追加するか、必要がない場合は既存のリモートを更新できます。

(明らかにシステムにすでに存在している)などのgithub代わりに呼び出される新しいリモートを追加するoriginには、次のようにします。

$ git remote add github git@github.com:ppreyer/first_app.git

ただし、チュートリアルのすべての箇所で「origin」が表示されている場合は、「github」に置き換える必要があります。たとえば、$ git push origin master今する必要があります$ git push github master

ただし、origin既に存在するものを確認したい場合は、を実行できます$ git remote -v。これがエラーであると思われる場合は、次のように更新できます。

$ git remote set-url origin git@github.com:ppreyer/first_app.git

5
なぜオリジンは彼の新しいリポジトリに存在するのでしょうか?思い出させる必要がある新しいエイリアスを作成する代わりに、問題を修正する必要があります(たとえば、オリジンがgithubの正しいエイリアスであることを確認します)。
DenysSéguret12年

1
うまくいきましたが、次のステップに進み、ターミナルにgit push -u origin masterと入力すると、次のエラーが発生します:エラー:リポジトリが見つかりません。致命的:リモートエンドが突然ハングアップしたことはどういう意味ですか?
プロイヤー2012年

git remote -v出力は何ですか?また、試して頂けますgit push origin masterか?
Agis

16
git remote rm originうまくいきませんでした。これは、生成エラー:「remote.origin」configセクションを削除できませんでした
アンドリューSavinykh

20
@zespri:使用git remote set-url --add origin git@github.com/username/repo.git
eduncan911 2014

342

要するに、

git remote rm origin
git remote add origin git@github.com:username/myapp.git

働いた!

乾杯!


誰でもこれを説明できますか?git remote rm origin
Kick Buttowski

1
@KickButtowski rmは、* nixで使用される削除コマンドを参照しています。したがって、このコマンドは「origin」という名前のリモートサーバーの詳細を「削除」するようにgitに指示します。
2017年

あなたが1でそれを行うことができるとき、これを2ステップで行う必要はありません。私の答えを見てください。
Agis

37

よくあるエラー「致命的:リモート起点はすでに存在します」に遭遇した場合、または起点を削除しようとしたときに「エラー:構成セクションremote.originを削除できませんでした」が表示された場合、次のことを行う必要があります。原点を手動で設定します。

WindowsのPOSH〜Git for Windows PowerShell(およびGitHub for Windowsのアプリ)には、この問題があります。

私は、オクトプレスをセットアップするときに、よくあるように、これに遭遇しました。だから、これが私がそれを機能させた方法です。

まず、リモコンを確認します。

C:\gd\code\octopress [source +2 ~3 -0 !]> git remote -v
octopress       https://github.com/imathis/octopress.git (fetch)
octopress       https://github.com/imathis/octopress.git (push)
origin

最初に、私のオリジンにはURLがないことに注意してください。それを削除したり、名前を変更したりしようとすると、すべて失敗します。

したがって、URLを手動で変更します。

git remote set-url --add origin https://github.com/eduncan911/eduncan911.github.io.git

次に、git remote -vもう一度実行して、動作を確認できます。

C:\gd\code\octopress [source +2 ~3 -0 !]> git remote -v
octopress       https://github.com/imathis/octopress.git (fetch)
octopress       https://github.com/imathis/octopress.git (push)
origin  https://github.com/eduncan911/eduncan911.github.io.git (fetch)
origin  https://github.com/eduncan911/eduncan911.github.io.git (push)

これにより、GitHub、BitBucket、GitLabなど、私が問題を抱えていた数十のgitリポジトリが修正されました。


2
これでうまくいきました。ありがとう@ eduncan911。githubの指示には、「git init」を実行してコマンドラインで新しいリポジトリを作成するように記載されています。これにより、そのPSインターフェイスを使用してURLのないオリジンリモートが作成されます。
mikekidder 2014年

ああ、それはまた別の落とし穴で、なぜこれをしなければならないのですか。+1たぶん、これをgithubのPOSH Gitに報告する必要があります。
eduncan911 2014年

gitlabを使用するときにURLを見つけるにはどうすればよいですか?
Madmenyo 2014

1
@MennoGouwそれは主題外の質問だと思います。ただし、通常はRepoのダッシュボード/ホームにあります。プロジェクトの設定にもあります。
eduncan911 2014

36

経由で接続するように設定されているリモートリポジトリを確認できます

git remote -v

次の形式でリストが返されます。

origin  git@github.com:github/git-reference.git (fetch)
origin  git@github.com:github/git-reference.git (push)

これは、元の「起源」が何を指しているのかを理解するのに役立ちます。

-vで表示されるリモート接続を維持したいが、チュートリアルのリポジトリの 'github'(または他の名前)を覚える必要なく、Railsチュートリアルを実行したい場合は、他のリポジトリの名前をコマンド:

git remote rename [current name] [new name]

のように:

git remote rename origin oldrepo

その後、チュートリアルを再開できます。


35

最初に、

git remote rm origin

その後

git remote add origin https://github.com/your_user/your_app.git

そして出来上がり!私のために働いた!


なぜ起源を削除するのですか?オリジンの代わりに何かを追加できる方法はありますか?
2018年

28

テンプレートとして使用した古いリポジトリから新しいリポジトリを作成するという特別な場合(これが当てはまらない場合は、これを行わないでください)。古いリポジトリのgitファイルを完全に消去して、新しいリポジトリを開始できるようにします。

rm -rf .git

その後、通常どおり新しいgitリポジトリを再起動します。

git init
git add whatever.wvr ("git add --all" if you want to add all files)
git commit -m "first commit"
git remote add origin git@github.com:ppreyer/first_app.git
git push -u origin master

13

ローカルリポジトリに接続しているリモートリポジトリを確認する必要がある場合は、cmdがあります。

git remote -v

ここで、リモートレポ(たとえばorigin)を削除する場合は、次のことができます。

git remote rm origin

これは、回答というよりはコメントのように見えます。もう少し担当者がいると、コメントを投稿できるようになります
Nathan Tuggy、2015年

@NathanTuggyいいえ、それは完全な答えであり、私の考えでは、このスレッドで最も人気のあるものよりも直接的です。
daOnlyBG 2015

@daOnlyBG:猶予期間中にコメントがロックされる前だったため、私が見たときの答えがどのようになっていたかわかりません(したがって、静かに編集された可能性があります)。しかし、今、それはかなり完全だと私は同意します。
Nathan Tuggy、2015

@NathanTuggyうわー、昔サイレント編集があったことを知らなかった。それは説明します。
daOnlyBG 2015

7

そのエラーメッセージは、gitディレクトリにすでにリモートがあることを示しています。そのリモートに満足している場合は、コードをプッシュできます。そうでない場合、または単にプッシュできない場合:

git remote remove origin
git remote add origin git@github.com:ppreyer/first_app.git

ほら!


7

の概念remoteは、単にリモートリポジトリのURLです。

originある別名そのURLを指しています。したがって、リポジトリに何かをプッシュするたびにURL全体を書き込むのではなく、このエイリアスを使用して実行します。

git push -u origin master

ローカルマスターブランチからリモートオリジンリポジトリにpushコードをgitで送るように指示する

リポジトリのクローン作成するたびに、デフォルトでgitがこのエイリアスを作成します。また、新しいリポジトリを作成するときはいつでも、自分で作成します。

どのような場合でも、この名前をいつでも好きな名前に変更して、次のように実行できます。

git remote rename [current-name] [new-name]

これはgitアプリケーションのクライアント側(マシン上)に保存されているため、変更しても、リモートリポジトリの開発プロセスには影響しません。覚えておいてください、それはアドレスを指す名前にすぎません。

エイリアスの名前を変更することによってここで変更される唯一のことは、リポジトリに何かをプッシュするたびにこの新しい名前を宣言する必要があることです。

git push -u my-remote-alias master

明らかに、単一の名前が2つの異なるアドレスを指すことはできません。そのため、このエラーメッセージが表示されます。originローカルマシンで名前が付けられたエイリアスが既に存在します。エイリアスの数とそのエイリアスを確認するには、次のコマンドを実行します。

git remote -v

これにより、所有しているすべてのエイリアスと対応するURLが表示されます。

これを実行したい場合は、それらも削除できます。

git remote rm my-remote-alias

要約すると:

  • あなたはすでに何を持っているかを調べ、
  • それらを削除するか、名前を変更します。
  • 新しいエイリアスを追加します。

ハッピーコーディング。


5

githubにアップロードしてからbitbucketにアップロードするなど、別のストレージのプロジェクトをすでに追加している場合は、このタイプのエラーが表示されます。

エラーを削除する方法:プロジェクトのgit-hubファイルを削除してから、次の手順を繰り返します...

git init       
git remote add origin git@bitbucket.org:Yourname/firstdemotry.git  
git add -A  
git commit -m 'Message'  
git push -u origin master  

5

gitを初期化せずにディレクトリでコマンドを実行した場合にも発生する可能性があります。その場合は、最初に実行します。

git init

4

gitを使用するには、

ルート

そうでない場合は、sudoを使用します

原点を削除する場合:

git remote remove origin

原点を追加する場合:

git remote add origin http:// giturl


3
  • $ git remote add origin git@gitlab.com:abc/backend/abc.git

    このコマンドでは、originはコマンドの一部ではなく、単にリモートリポジトリの名前です。任意の名前を使用できます。

    • まず、以下のコマンドを使用して、含まれていることを確認できます

    $ git remote -v

    それはあなたにこのような結果を与えます origin git@gitlab.com:abc/backend/abc.git (fetch) origin git@gitlab.com:abc/backend/abc.git (push) origin1 git@gitlab.com:abc/backend/abc.git (fetch) origin1 git@gitlab.com:abc/backend/abc.git (push)

    リモートリポジトリのパスが含まれている場合は、オリジンを再度追加せずに直接プッシュできます。

    • リモートリポジトリのパスが含まれていない場合

    次に、別の名前で新しいオリジンを追加し、それを使用して $ git remote add origin101 git@gitlab.com:abc/backend/abc.git

    または、既存のオリジン名を変更してオリジンを追加することもできます

    git remote rename origin destination

    コマンドの下で再び発射

    $ git remote -v

    destination git@gitlab.com:abc/backend/abc.git (fetch) destination git@gitlab.com:abc/backend/abc.git (push)

    既存のリポジトリ名を変更して、そのオリジン名を使用できるようにします

    または、既存のオリジンを削除して追加することもできます

    git remote rm destination


3

これを試して

  • cd existing_repo
  • git remote rename origin origin-origin

おかげで、これは私のために働いた唯一のものです。
Akshat Tamrakar

2

Windowsでgit bashを使用してgit hunにリポジトリを追加するときに同じエラーが発生する

 git remote add origin https://github.com/axaysushir/netflix_page_clone.git

致命的:リモートの起点はすでに存在しています。

fatal: remote origin already exists.

 ! [rejected]        master -> master (fetch first)

エラー:一部の参照を ' https://github.com/axaysushir/meditation_app_using_js.git ' にプッシュできませんでした

次のコマンドでリポジトリを更新します

$ git remote set-url origin https://github.com/axaysushir/netflix_page_clone.git

次に、git remote add originの代わりにgit remote add githubを使用してリポジトリを追加します

$ git remote add github https://github.com/axaysushir/netflix_page_clone.git

そして、git push origin masterの代わりに次のコマンドを書いてくださいこれはリポジトリをgithubにアップロードします

$ git push github master

2

存在する場合は、このコマンドを使用してオリジンを更新します

git remote set-url origin https://github.com/SriramUmapathy/ReduxLearning.git

0

最初のチェックエイリアスの数とそのエイリアスを確認するには、このコマンドgit remote -vを開始します

次に、現在のリポジトリを確認してから、git remote set-url --add [Then your repositpory link] git push -u origin masterを試してください。


0

少なくともbashでは、コマンドの終了コードの戻り値を0にすることができます

古いリモコンを削除して、もう一度追加できます

git remote remove $1 || true
git remote add $1 $2

0

GUI経由で実行する場合は、次の手順を実行します。

  1. 「隠しファイル」がプロジェクトフォルダに表示されることを確認します
  2. .gitディレクトリに移動します
  3. config.txtファイルのurlファイルを編集して、ファイルを保存してください!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.