プロジェクトはGitに2つ(またはそれ以上)の「オリジン」を持つことができますか?
1つのプロジェクトをgithubとHerokuサーバーの両方にプッシュしたいと思います。
具体的には、githubリポジトリを追加するときにこのエラーが表示されます。
$ git remote add origin https://github.com/Company_Name/repository_name.git
fatal: remote origin already exists.
プロジェクトはGitに2つ(またはそれ以上)の「オリジン」を持つことができますか?
1つのプロジェクトをgithubとHerokuサーバーの両方にプッシュしたいと思います。
具体的には、githubリポジトリを追加するときにこのエラーが表示されます。
$ git remote add origin https://github.com/Company_Name/repository_name.git
fatal: remote origin already exists.
回答:
あなたは多くのとして持つことができるリモコンあなたが望むように、しかし、あなたは一つだけでは、リモート「起源」と命名していることができます。「origin」と呼ばれるリモートは、既存のリポジトリを複製するときにGitによって作成されるデフォルトのリモートであることを除いて、特別なものではありません。2番目のリモートを構成し、そのリモートからプッシュ/プルし、いくつかのブランチをセットアップして、オリジンではなくそのリモートからのブランチを追跡できます。
代わりに「github」というリモートを追加してみてください:
$ git remote add github https://github.com/Company_Name/repository_name.git
# push master to github
$ git push github master
# Push my-branch to github and set it to track github/my-branch
$ git push -u github my-branch
# Make some existing branch track github instead of origin
$ git branch --set-upstream other-branch github/other-branch
origin
とリモートと呼ばれますheroku
。
後でこの質問に遭遇した場合の補足として、一度に複数のgitリポジトリサーバーにoriginをプッシュすることができます。
これは、次のコマンドを使用して別のURLをオリジンリモートに追加することで実現できます。
git remote set-url --add origin ssh://git@bitbucket.org/user/myproject.git
./git/config
[remote "origin"]セクションでファイルを編集してurlファイルを削除できます
git remote set-url --delete origin ssh://git@bitbucket.org/user/myproject.git
これは、GitHubとGitLabの複数のリモートを使用したサンプルプロジェクトです。
GitHubのリモートリポジトリを追加する
$ git remote add github https://github.com/Company_Name/repository_name.git
GitLabのリモートリポジトリを追加する
$ git remote add gitlab https://gitlab.com/Company_Name/repository_name.git
これで、プロジェクトに複数のリモートがあります。ダブルチェックgit remote -v
$ git remote -v
github https://github.com/Company_Name/repository_name.git (fetch)
github https://github.com/Company_Name/repository_name.git (push)
gitlab https://gitlab.com/Company_Name/repository_name.git (fetch)
gitlab https://gitlab.com/Company_Name/repository_name.git (push)
複数のリポジトリにどのようにプッシュしますか?
$ git push github && git push gitlab
$ git push
すべてのリモコンにプッシュするだけではありませんか?
オリジンの代わりに別の名前を付けることで、別のリモートアカウントをリポジトリに追加できます。origin2などの名前を使用できます。あなたのgitコマンドは次のように変更できます
git remote add origin2 https://github.com/Company_Name/repository_name.git
git remote add origin2 https://github.com/Company_Name/repository_name.git
プッシュ使用の場合:
git push -u origin2 master
git remote set-url --add --push origin git@github.com:user/my-project.git
git remote set-url --add --push origin git@bitbucket.org:user/my-project.git
これで2つの原点があります。
--push
オプションのおかげで、この回答は他の回答よりも役立つ/洗練されています。