一度のPushで、GitHubとBitbucketの両方に変更内容を反映されるようにする

# はじめに

これまで、プログラミングを個人で学習するにあたり、GitHubでバージョン管理を行なってきました。

しかし、内定先の会社ではBitbucketを使用するため、Bitbucketを使用したバージョン管理にも慣れておこうと考え、個人学習でBitbucketを使ってみることにしました。

その際、せっかく学習をするのであれば、GitHubにも草が生えるようにしときたいなぁということで、一度のPushでGitHubとBitbucketの両方にPushする方法はないかと思い、調べてみた次第です。

# 前提

今回は、試しに下図のようなGitHubリポジトリに`test.txt`というファイルをPushし、同時にBitbucketにも同じ内容でPushが行われるようにしたいと思います。

![スクリーンショット 2022-08-27 午後2.46.23（2）.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1602300/1c6ab412-3148-d880-809a-defe8c9b031f.jpeg)

本記事を進めるにあたっての前提条件は、下記の通りです。

- GitHubにリポジトリが作成されている
- Bitbucketのアカウントが作成されている
- BitbucketにSSH接続されている

# 内容

まずは、Bitbucketのトップページから、赤枠部の”Create”をクリックします。

![スクリーンショット 2022-08-27 午後2.43.10（2）.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1602300/c6df8919-0d28-8cbf-75fe-0fa88797ee44.jpeg)

次に、”リポジトリ”をクリックします。

![スクリーンショット 2022-08-27 午後2.43.18（2）.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1602300/181277fc-52c5-5a42-7cfe-2e48036a48ad.jpeg)

”リポジトリのインポート”をクリックします。

![スクリーンショット 2022-08-27 午後2.44.20（2）.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1602300/88056aa0-ea0d-de13-2c84-c884dc442b27.jpeg)

赤枠のURLの項目に、GitHubリポジトリのURLを貼り付け、任意のプロジェクト名を設定し、”リポジトリのインポート”をクリックします。

![スクリーンショット 2022-08-27 午後3.21.24（2）.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1602300/d17499d2-2056-c501-a1c0-34fcf203528b.jpeg)

そうすると、本記事の`前提`の項目で出てきたGitHubのリポジトリと同じ状態になりました。

次に、赤枠の”クローンの作成”をクリックし、BitbucketのリモートURLを表示させます。

![スクリーンショット 2022-08-27 午後3.25.51（2）.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1602300/890fbe9d-d840-2d25-1268-83d32ae96349.jpeg)

続いて、BitbucketのリモートURLを追加するために、git clone以下の赤枠部をコピーします。



ここからは、ターミナルで作業を行なっていきます。

まずは、作業ディレクトリにて、現在登録されているリモートURLを確認しておきます。

`ターミナル`

```
$git remote -v
```

そうすると、下記のような出力結果となっているかと思います。

`出力結果`

```
origin  git@github.com:***/Bitbucket-test.git (fetch)
origin  git@github.com:***/Bitbucket-test.git (push)
```

現在のリモートURLの確認ができたところで、先ほどコピーしたBitbucketのリモートURLを追加していきたいと思います。

`ターミナル`

```
$git remote set-url --add origin git@bitbucket.org:***/bitbucket-test.git
```

上記のコマンドを実行しても、特に出力結果は出ません。

そこで、再度リモートURLの状態を確認するコマンドを入力し、正しく設定されているか確認します。

`ターミナル`

```
$git remote -v
```

そうすると、下記のような出力結果となっているかと思います。

`出力結果`

```
origin  git@github.com:Kataoka-PHP/Bitbucket-test.git (fetch)
origin  git@github.com:Kataoka-PHP/Bitbucket-test.git (push)
origin  git@bitbucket.org:kataoka-php/bitbucket-test.git (push)
```

上記のように、3行目にBitbucketのリモートURLが設定されていれば、成功です。

それでは、BitbucketのリモートURLが設定できたので、実際に`test.txt`　を新規作成し、Pushしてみましょう。

`ターミナル`

```
$git add test.txt
```

`ターミナル`

```
$git commit -m 'test'
```

`ターミナル`

```
$git push origin main
```

そうすると、下図のようにGitHubとBitbucketの両方に、`test.txt`　がPushされました。

`GitHub`

![スクリーンショット 2022-08-27 午後3.41.09（2）.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1602300/41d261e4-ab0e-e204-30df-9d1462480282.jpeg)

`Bitbucket`

![スクリーンショット 2022-08-27 午後3.41.19（2）.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1602300/cdad0156-faf7-3068-ee32-d57e569dbd36.jpeg)

# さいごに

いかがだったでしょうか。

私の探し方の問題もあると思いますが、Bitbucketに関する情報は、ネットで探してもあまりなかったこともあり、今回記事を作成してみました。

分かりにくい点等ありましたら、お気軽にコメントいただければと思います。

GitHubとBitbucketに同時にPushしたいというニーズは、そもそもあまりないかもしれません。

ただ、下記リンク先の方の場合は、社内サーバーとGitHubに同時にPushしたいという状況があったようなので、私も実務に入った後、今回学んだことを活かす場面が来るのかもしれません。

最後までお読みいただきありがとうございました。

# 参考文献

[【git-remote】 複数のリモートリポジトリへ同時に Push する](https://www.coppla-note.net/posts/git-multi-remotes/)