blog2020/01/15OSSへのコントリビュートするときのリポジトリの設定GitGithubOSSへのコントリビュートを経験しました。その際、リポジトリの用意など調べながら進めたのでこの記事にメモしておきます。元のリポジトリをフォークして、修正してプルリクエストを出す。いう作業をするためのリモート・ローカルリポジトリの構成の説明です。自分のアカウントへフォークするローカルへcloneする作業を行うブランチを作成リモートにブランチをpushプルリクエストを作る必要なら修正フォーク元リポジトリの更新を反映する書き込み権限があるなら自分のアカウントへフォークするOSSのリポジトリは間違いなく書き込む権限がありません。cloneしてもリモートへpushできませんし、リモートにbranchを作ることもできないと思います。自分のアカウントにフォークを行います。リポジトリの右上のボタンでできます。自分のアカウント以下に同じリポジトリがコピーして作成されます。ここは自分の管理下なので書き込み等を行うことができます。ローカルへcloneするフォークしたリモートリポジトリをローカルにcloneします。作業を行うブランチを作成フローやコミュニティのルールにもよると思いますが、とりあえずmasterに変更を加えるのではなくローカルに作業ブランチを作成しましょう。リモートにブランチをpushフォークした自分のリモートリポジトリへpushして、リモートリポジトリにも作業ブランチを作成します。以降、作業ブランチで構築を行いcommitして、リモートの作業ブランチへpushします。プルリクエストを作る作業が完了したらプルリクエストを作ります。自分のアカウントのリモート作業ブランチのリポジトリにプルリクエストを作成するボタンがあるので、そこから作成します。OSS管理者:リポジトリ名/masterへのプルリクエストを行います。開発フローによってはdevelopブランチへのプルリクエストなどもあると思いますので注意しましょう。作業の進捗がわかるようにとか、議論ができるように早めにプルリクエストを作っておくといいそうです。コミュニティのルールや方針にもよると思います。以降はローカルの作業ブランチで修正、リモートの作業ブランチへpush。作業が完了したら、githubにて管理者のリポジトリのmasterブランチへプルリクエストを出します。フォーク元リポジトリの更新を反映するフォークした自分のリポジトリには、fork元リポジトリに行われた管理者や他の開発者の変更が反映されません。放置しておくと差異が大きくなり衝突が起きる可能性が大きくなるので、pushの前などこまめに反映しておく必要が有ります。リモートに追加して、そこからfetchとmergeをおこないます。以下のコマンドでフォーク元のリポジトリをremoteに追加します。「upstream」という名前で登録しています。git@github.com:oss管理者/リポジトリ.gitリモートupstreamから情報をfetchします。upstreamローカルのブランチへ変更をmergeします。upstream/master書き込み権限があるなら直接リポジトリをcloneして、作業するブランチを作成。ブランチで作業が終わったらリモートにbranchを作成して、そこからリモートのmasterへプルリクエストすれば良いです。管理が減るのでこっちのほうがスッキリしますね。OSSでは通常無いのかなと思います。管理者やプロジェクトに入ればできると思います。おわりにOSSへのコントリビュートできる機会があったのでやってみましたが、とても簡単な内容でしたのでそんなに自慢できるものでもありません。やってみてとても興味を持てたので、機会を見つける・自分で立ち上げる等してOSSへの貢献を目指したいと思います。editerマークダウン特化エディタアプリマークダウンのプレビュー・よく使う記号を入力するボタンが利用できます。野々市市コミュニティバスのっティ時刻表アプリルートとバス停を選択して時刻表が確認できます石川県野々市市に住むフリーランスエンジニア。応用情報とDBスペシャリストの資格を保有。Webシステムの構築、スマホアプリ、プログラミングメンターなどの依頼に対応できます。