linkerは「人と人」「人と情報」「人と物」をつなぐデザインユニットです。

Gitで複数のリポジトリにPushしてみる

みなさん、こんにちは、まーしーです。
この週末はチャーチルの生家を見に行ってきたのですがなんか別世界でしたね。。
世界史とかほとんど覚えていないので、色々訪れる度に本などを読んでも楽しいのかも、と思いますね。

さて、先日Gitで複数のリポジトリにPushしてみるのを@tinybeansさんの協力のもと試してみました。
とりあえず今回はGithub上で複数のリポジトリに試してみます。

remote リポジトリの用意

まずメインリポジトリを作ります。

tinybeans/test - GitHub
https://github.com/tinybeans/test  

今回はGithub上だけで完結させるので、forkさせて別のリポジトリを作成します。

mersy/test - GitHub
https://github.com/mersy/test

このリポジトリをローカルにCloneで持ってきます。
Cloneしてpublishもしておけば普通に使う様に問題無く使えます。

configの修正

ローカルのリポジトリを指定したフォルダ内に「.git/config」というファイルがあると思います。
その中にremoteのリポジトリを指定してある場所があります。

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = git@github.com:mersy/test.git

これをこんな感じで、もう一個urlを追加してあげれば両方のリポジトリにpushすることが出来ますね。

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = git@github.com:mersy/test.git
        url = git@github.com:tinybeans/test.git

pullされるのは先に書かれてあるリポジトリの様です。
別のリポジトリ(この場合はtinybeans/test.git)の編集権限がないとpushする際にエラーが出てしまうので事前に設定が必要です。

ということで

今回は両方ともGithub上でやっているのでメリットはなさそうですが、pushする際に別の開発環境にもまとめてpushしてしまうとかも可能になりそうな気がします。
macのGithub for macだとどうなるのかなどはちょっと分かりませんが、そのあたりについても調べてみようと思います。

GUIで使えるツールの1つとしてGithub for macが無料で使えるので管理としてはGithubになってしまいそうですが、それを複数に出来るとGitを使う敷居も下がりそうですね。