web-dev-qa-db-ja.com

プロジェクトは複数の起源を持つことができますか?

プロジェクトはGitに2つ(またはそれ以上)の「起源」を持つことができますか?

単一のプロジェクトを githubHerok サーバーの両方にプッシュしたいと思います。

具体的には、githubリポジトリを追加するときにこのエラーが表示されます。

$ git remote add Origin https://github.com/Company_Name/repository_name.git
fatal: remote Origin already exists.
146
Chris Dutrow

remotesをいくつでも持つことができますが、「Origin」という名前のリモートは1つしか持てません。 「Origin」と呼ばれるリモートは、既存のリポジトリを複製するときにGitによって作成されるデフォルトのリモートであることを除いて、特別なものではありません。 2番目のリモートを設定し、そのリモートからプッシュ/プルし、いくつかのブランチを設定して、Originではなくそのリモートからのブランチを追跡できます。

代わりに「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
223
meagar

後でこの質問に出くわした場合の補足として、一度に複数のgitリポジトリサーバーにOrigin Pushを行うことができます。

これを実現するには、次のコマンドを使用して別のURLをOriginリモートに追加します。

git remote set-url --add Origin ssh://[email protected]/user/myproject.git

複数のリモート、GitHubおよびGitLabを使用したサンプルプロジェクトを次に示します。

  1. GitHubのリモートリポジトリを追加する

    $ git remote add github https://github.com/Company_Name/repository_name.git
    
  2. GitLabのリモートリポジトリを追加する

    $ git remote add gitlab https://gitlab.com/Company_Name/repository_name.git
    
  3. これで、プロジェクトに複数のリモートができました。 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)
    
  4. 複数のリポジトリにどのようにプッシュしますか?

    $ git Push github && git Push gitlab
    
27
dihardmg

originの代わりに別の名前を指定して、リポジトリに別のリモートアカウントを追加できます。 Origin2などの名前を使用できます。 gitコマンドは次のように変更できます

git remote add Origin2 https://github.com/Company_Name/repository_name.git
1
git remote add Origin2 https://github.com/Company_Name/repository_name.git

プッシュ使用の場合:

git Push -u Origin2 master
0
Lovepreet Kaur