SourceTree で GitHub 等のレポジトリを追加&同期する方法

GitHub and SourceTree

大きなプロジェクトに参加していると、親・子・孫・親戚レポジトリなど、複雑な環境で、ソースコードの共有を行います。

SourceTree フォーク元や、そのさらなる上の階層フォークや別のフォークとの同期をさせたい場合の設定方法です。GitHub、BitBucket、Backlog など複数・別々の Git レポジトリと同期することも可能です。

(Git 自身に関する初心者向けの解説は「サルにも分かる Git入門」などをまずお読みになるのが最適です。)

(2015年5月20日現在の情報です。)

レポジトリとの相関関係

今回の例として

【concrete5 CMS 大元マスター】−【concrete5 日本語版マスター】-【自分のレポジトリ】

という3つのレポジトリがあると仮定してます。

1. GitHub (や他の Git レポジトリ)にて、親レポジトリ等の「Clone URL」のURLをコピー(覚える)

まず、大元のレポジトリを普通に Clone します。

そして、大元マスターや日本語版マスター等、他のレポジトリの Clone URLをコピーします。

GitHub SSH Clone URL

2. SourceTree の設定

大元のレポジトリを Source Tree で開いて、ウインドウから「設定 (Settings)」ボタンを押します。

SourceTree Settings

3. 追加

そして、「リモート(Remotes)」タブから「追加 (Add)」を押します。

SourceTree Setting

4. 名前や Clone URL

リモート名 (Remote name)」は、自分の好きな名前をつけて構いません。

URL / path」は、さきほどコピーしたURLを貼り付けます。そして、OKを押します。この動作を、追っていきたいレポジトリの数分繰り返し行います。

SourceTree Setting up Upstream Git

これで、親レポジトリなどフォーク元のレポジトリも追えるようになります。

親レポジトリの変更を自分のレポジトリに加える手順

GitHub for Mac でいう Sync を SourceTree で行う方法です。別レポジトリの変更を自分のローカルに取り込んで(Pullして)、自分のレポジトリにプッシュ (Push) するという方法を取ります。

まず、「Pull」ボタンを押し、変更を取り込みたい元となるレポジトリとブランチを選択し、「OK」を押して、ローカルコピーに、レポジトリの変更を取り入れます。

Pulling from parent repo

ローカルコピーに、別レポジトリのコミットを取り込んだら、今度は自分のレポジトリにその修正内容を Push します。「Push」を押して、Push先のレポジトリとブランチを選択し、「OK」を押すと、自分のレポジトリに元レポジトリからの変更を同期させることができます。

Pushing to my own repo

SourceTree を使って、快適な大規模開発を!

ネタ元:http://stackoverflow.com/questions/13273852/how-do-i-update-my-forked-repo-using-sourcetree