BitbucketとGitHubにプッシュしたいリポジトリが1つあります。私のリポジトリが両方でホストされていることが重要です。
Gitでこれを行う方法はありますか?
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
はい、できます。 2回プッシュする必要はありませんが、両方のリモートリポジトリにプッシュするのに1回だけです。以前にも同じ問題を抱えていたので、ここでその方法を書きました。 Git:GithubとBitbucketの両方にプッシュ/プル
いくつかの[〜#〜] 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"」を作成できます。
この方法では、既存のリモート「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 それについてのブログ も同様です。