- 追加された行はこの色です。
- 削除された行はこの色です。
&tag(git/upstreamの管理);
*目次 [#h53ba928]
#contents
*関連ページ [#wf4782fd]
*参考情報 [#a8167001]
-[[GitHubでFork/cloneしたリポジトリを本家リポジトリに追従する - Qiita:http://qiita.com/xtetsuji/items/555a1ef19ed21ee42873]]
-[[WordPress/テーマ - src's wiki:http://www.srcw.net/wiki/index.php?cmd=read&page=WordPress%2F%A5%C6%A1%BC%A5%DE&word=upstream]]
*概要 [#c34cc1bc]
-オープンソースソフトを手元で修正しつつ、上流が変更された場合はそれに追随した。
*概要と同期 [#c34cc1bc]
-オープンソースソフトを手元で修正しつつ、上流が変更された場合はそれに追随したい。
-サードパーティソースをうまく扱いたい。
*上流ソースにgitでアクセスできない場合 [#q447c724]
-[[Vendor branches in git | Jabbering Giraffe:http://happygiraffe.net/blog/2008/02/07/vendor-branches-in-git/]]が参考になる。
***手順1: 初回上流ソースをインポート [#la883dbc]
- supertheme.zipを展開しmasterにコミット。さらに今後のimport用にupstreamブランチを準備しておく。
#pre{{
$ unzip supertheme.zip
$ cd supertheme
$ git init
$ git add .
$ git commit -m "Import supertheme 1.0"
$ git tag v1.0
$ git branch upstream
}}
***手順2: 上流ソースのアップデートに追随 [#he361caf]
-upstreamブランチに上流ソースをインポートしなおしてから、masterにmergeする。
#pre{{
$ cd wordpress
$ git checkout upstream
$ rm -r *
$ (cd .. && unzip supertheme-1.1.zip)
$ git add .
$ git commit -a -m 'Import supertheme 1.1'
$ git tag v1.1
$ git checkout master
$ git merge upstream
}}
-今後はこのサイクルを繰り返していく。gitの場合前回マージ点を記憶しておいてくれるので、毎回upstreamからmasterにマージしていくことが可能。[[Subversionにおいて、「前回マージした以降に行われたコミットをすべてマージ」を行うには? - QA@IT:http://qa.atmarkit.co.jp/q/2976]]
-以下のようなログになるはず。
#ref(upstream.png)
*上流ソースにgitアクセスできる場合 [#r1a6dfdf]
-[[GitHubでFork/cloneしたリポジトリを本家リポジトリに追従する - Qiita:http://qiita.com/xtetsuji/items/555a1ef19ed21ee42873]]の方法が使える。
-git remoteで上流にアクセスできるので、それを使うだけで基本的な考え方は上と同じ。