GitHubでforkしてからPull Requestを出すまでのフロー
hifiveなどに外部からソースコードのコミットを行うまでのフローをまとめます。
(以下はEclipseでhifive-ui-libraryへソースコードを追加する場合の例です。)
基本的には、自分のアカウントでプロジェクトをforkし、Pull Requestを出すことで修正を取り込むようにします。
開発のワークフローについては、独立性の高いソースが複数ある場合のワークフローも参照してください
Forkする
- GitHubに自分のアカウントでログインします。
- 対象のリポジトリ(今回はhifive-ui-library)にアクセスします。
- 画面の右上でForkボタンを押します。
fork後の画面
プロジェクトをインポートする
- Gitリポジトリを複製する
- 対象のブランチを選択する
datagrid-devブランチを選択する場合
- 修正用のブランチを作成する
ブランチは修正内容ごと(=Pull Requestの単位ごと)に作成する
例:datagrid-dev-fixcolumnなど
- 複製されたリポジトリを右クリック→プロジェクトのインポートする
コードの修正・コミット
- 対象のソースコードを修正する
- 編集後、ファイルを右クリック→チーム→コミットでファイルをコミットおよびPushする
Pull Requestを出す
- 修正が完了したらPull Requestを出す
Pull Requestはもとのブランチ(datargird-devなど)のコードに対して行うため、修正内容をこのブランチにマージする- datagrid-devブランチに切りかえる
プロジェクトを右クリック→チーム→切替→その他からもとのブランチ(datagrid-devなど)を選択する - datagrid-devブランチにコミットをマージする
プロジェクトを右クリック→チーム→マージでソースコードを修正したブランチを選択する
マージ後、マージコミットが作成されるので、pullする
1*.Pull Requestを作成する
GitHubのページの自分のhifive-ui-libraryプロジェクトで「New pull request」ボタンを押す
- datagrid-devブランチに切りかえる
レビューした結果、問題がなければhifive本体側にコードをマージします。
レビューで指摘があった場合は、8に戻り修正を行います。
修正が完了した後、再度Pull Requestを出す必要はありません(Pull Requestは対象のブランチの最新のコードをマージ対象とします)。
本体の更新内容を自分のリポジトリに取り込む
自分のソースコードの修正を行っている間、本体側でも開発が進み、差分が出ることがあります。
本体の修正内容をforkしたリポジトリへ取り込むには次の手順を踏みます。
- リモートリポジトリとして、オリジナルのリポジトリを設定する
リモートの作成から新規リモートを選択し、適当な名前をつけて選択します。
変更から元となるURIを指定します
その後、保管するとリモート構成が設定されます
- 作成したリモートリポジトリを選択して、フェッチします
- 変更を取得できたら、現在のリポジトリにマージします
プロジェクトを右クリックで選択してマージ→リモート・トラッキングで元のリポジトリの同じブランチを指定します。
競合が出た場合は、競合の解消を行い、マージをコミットします。