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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS