LoginSignup
2
2

More than 5 years have passed since last update.

[git][OSS]Upstream開発

Posted at

GitHubで公開されているオープンソースなコードを利用する際、修正が必要になった場合の対応方法として、Upstream開発の手順を説明する。

Upstream開発とは、簡単に説明すると、修正内容を本家にpull requestを投げて取り込んで貰い、独自に手を加えてしまった結果、本家から枝分かれする状況を避ける方法だ。

利用しているOSSへの貢献にもなるので、一石二鳥とも言える。

GitHubでforkする

GitHubで本家から自分の領域にforkする。

理由は、本家のリポジトリは普通はpush権限がないので、修正は自分のリポジトリに対して行う。

自分の作業領域にcloneする

$ git clone git@github.com:murakami/cocos2d-x.git
$ cd cocos2d-x

本家と内部のリポジトリをリモートに追加する

forkしたリポジトリで修正作業を行うのでなく、別に内部のリポジトリが存在する前提で、本家と内部のリポジトリをリモートに設定する。

その理由は、後で分かる。

$ git remote add upstream git@github.com:cocos2d/cocos2d-x.git
$ git remote add bitz ssh://git@git.bitz.co.jp/bitz/cocos2d-x.git
$ git remote
bitz
origin
upstream

設定されていることを確認。

本家とfork先を同期する

$ git fetch upstream
$ git pull upstream ブランチ名
$ git push origin ブランチ名

内部リポジトリの修正内容をfork先にchery-pickで取り込む

$ git fetch bitz
$ git checkout -b feature/修正ブランチ名
$ git cherry-pick XXXXXX
$ git push origin feature/修正ブランチ名

本家に対してPull requestを作成する

GitHubのforkしたリポジトリのPull reqestsで、本家のブランチに対してPull requestが作成する。

forkしたブランチは公開されているものなのと、余計なログで汚れていないことが望ましいということで、forkしたブランチで開発作業を行うのは避けたほうがいい。

【関連情報】
Cocoa.swift 2019-02

Cocoa.swift

Cocoa勉強会 関東

MOSA

Cocoa練習帳

Qiita

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2