web-dev-qa-db-ja.com

1つのプロジェクトでBitbucketとGitHubを同時に使用する方法は?

BitbucketとGitHubにプッシュしたいリポジトリが1つあります。私のリポジトリが両方でホストされていることが重要です。

Gitでこれを行う方法はありますか?

84
erogol

Gitでは複数のリモートリポジトリを使用できます。しかし、私は信じているあなたのリモートの2つに別々にプッシュする必要があります。

たとえば、プロジェクトが現在githubを指している場合、現在のリモートリポジトリの名前をgithubに変更できます。

$ git remote rename Origin github

その後、別のリモートリポジトリ、たとえばbitbucketを追加できます。

$ git remote add bitbucket [email protected]:your_user/your_repo.git

Githubまたはbitbucketの対応するブランチに変更をプッシュするために、これを行うことができます:

$ git Push github HEAD
$ git Push bitbucket HEAD

プルにも同じルールが適用されます。プルするリモートを指定する必要があります。

$ git pull github your_branch
$ git pull bitbucket your_branch
107
Denis Kniazhev

はい、できます。 2回プッシュする必要はありませんが、両方のリモートリポジトリにプッシュするのに1回だけです。以前にも同じ問題を抱えていたので、ここでその方法を書きました。 Git:GithubとBitbucketの両方にプッシュ/プル

29
Kevin Lee

いくつかの[〜#〜] easy [〜#〜]ソリューション。

複数のリモートが個別にプッシュ(およびフェッチ)されます

これは最も簡単に回避できますが、最も手間がかかります。

新しいリモートを追加することから始めます。

$ cd myproject 
$ git remote add bitbucket ssh://[email protected]/user/myproject.git 
$ git Push bitbucket master

まっすぐに?もちろん、変更をコミットするたびに、元の「Origin」と新しいリモートの「bitbucket」の両方にプッシュする必要があります。

$ git Push Origin master
$ git Push bitbucket master

大規模なオーバーヘッドではありませんが、時間の経過とともに大きくなると確信しています。または、「alias gpob = "git Push Origin master && git Push bitbucket master"」を作成できます。

複数のURLが連続してプッシュ(およびフェッチ)される単一のリモート

この方法では、既存のリモート「Origin」に追加のURLを追加します。

$ cd myproject
$ git remote set-url --add Origin ssh://[email protected]/user/myproject.git
$ git Push Origin master
Everything up-to-date
Everything up-to-date

はるかに少ない労力!

もちろん、シルバーの裏地にはクラウドがあり、この場合、複数のURLに同時にプッシュできますが、元の「Origin」からしかフェッチできません(これは変更できますが、この投稿の範囲外です) )。

最後に、どのリモートが取得されるかを確認するには:

$ git remote -v show

I それについてのブログ も同様です。

28
Ahmad Awais