&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で上流にアクセスできるので、それを使うだけで基本的な考え方は上と同じ。