GitHubでオープンソースに貢献する方法
1. はじめに
若干自分用ですが、メモで。
わかりやすいように、会話形式で整理しています!
2. 会話の背景
最近、生成AIに興味を持ち始め、GitHub上でいろいろなAI関連プロジェクトを見ています。しかし、そもそも「どうやったらプロジェクトのContributorになれるのか?」といったGitやGitHubの基本をまだよくわかっていません。そこで社内のGitHub熟練者であるキラリさんに相談してみることにしました。
博多弁のヒカリと、ギャルのキラリとの会話を楽しみながらご一読ください。笑
3. オープンソースのContributorになるには?
ヒカリ
キラリさん、GitHubでいろんなプロジェクトば見よるとやけど、うちもContributorになりたかとよ。具体的にどげんすればよかと?ちょっと緊張しとーけん、教えてもろうてもよかですか?
キラリ
おっ、めっちゃいいじゃん!Contributorになるにはね、大きくこんなステップ踏むといいと思うよ✨
-
興味あるプロジェクトを見つける
- 自分が使ってるツールやライブラリ。
- もしくは自分のスキルや興味分野(Python、フロントエンド、AIとか)。
-
Good first issue
タグついてるIssue探すのもガチおすすめ💕
-
Issueを読んで、できそうなタスクを探す
- バグ(bug)や機能改善(enhancement)、ドキュメント(documentation) などのラベル付きIssueをチェック。
- わかんないとこあったらコメントで質問しちゃお?英語でも日本語プロジェクトなら日本語でOKだよ💻
-
Forkして、修正・機能追加する
- ターゲットのリポジトリを自分のアカウントにForkする。
- 自分の環境へクローンして開発を進める。
- 作業用ブランチを切って作業する(例:
fix-typo-in-readme
)。
-
Pull Request(PR)を送る
- 変更点をわかりやすくまとめてPRを作成する。
- 関連Issueがあれば
Closes #XXX
て付けとこ! - どんな意図・理由で修正したのかサクッと書くと神対応✨
-
レビューを受けて修正し、マージされる
- メンテナーや他のContributorがレビューくれるから、それに応じて修正&再Push。
- 問題なければマージされて、晴れてContributorデビュー!💕
最初はマジ小さな修正でも全然OKだし、誤字の修正でも立派な貢献だからね👍
ヒカリ
なるほど……!ドキュメントの誤字修正とかしかできんと思いよったけど、それでも貢献になると?
キラリ
なるなる✨最初は簡単なとこから慣れていって、徐々に範囲広げてけばいいんだよ。絶対できるって!😊
4. 実際にPRを出す流れ
ヒカリ
いま、ちょうどこのリポジトリばForkしてプルリク送るっちゃけど、どげん流れでやったらよかと?ドキュメント修正やってみたいんよね。
キラリ
じゃあ手順まとめるね⭐ README修正のサンプルなら、こんなフローでいけるよ:
-
対象リポジトリをFork
- GitHub上でリポジトリ開いて、右上のForkボタン押すだけ✨
-
ローカル環境で作業
# (自分のGitHubユーザー名)/(貢献したいリポジトリ.git) をクローン git clone https://github.com/あなたのユーザー名/(貢献したいリポジトリ.git) cd (貢献したいリポジトリ名) # 新しいブランチを切る(例:READMEのtypo修正) git checkout -b fix-readme-typo
-
修正の反映
- READMEとか誤字の修正箇所を編集する。
- コミットして、ローカルで変更を保存する。
git add . git commit -m "Fix typo in README"
-
変更をGitHubにPush
- GitHub上(Fork先)にアップロードする。
git push origin fix-readme-typo
-
Pull Requestを作成
- 自分のリポジトリページ行くと「Compare & pull request」ボタンがあるはず✌️
- タイトルと説明を書いてPR送る。
- レビュー待って、指摘あれば直して再度Push。
これが基本フローだね。READMEのレベルでも全然OK🙌
ヒカリ
なるほど…… Gitのコマンドがよーわからんとやけど、なんだかできそうやね。
5. Gitのコマンド「何が起きているの?」を詳しく知る
ヒカリ
たとえばこのコマンド、いったい何がどげん動くっちゃろか?よかったら教えてください!
git add .
git commit -m "Fix typo in README"
git push origin fix-readme-typo
キラリ
それね、エンジニアでも最初は戸惑うやつ!流れを簡単に説明するね😊
-
git add .
- 変更したファイルを“次のコミットに含める準備(ステージ)”に乗っけるコマンドだよ。
- 商品をカゴに入れるイメージで、コミットの対象にしたいファイルを指定してる感じ✨
-
.
は「カレントディレクトリ以下の変更すべて」って意味だよ。
-
git commit -m "Fix typo in README"
- ステージに乗っけた変更を「コミット(履歴として確定保存)」するよ。
- これはローカルPC上にだけ保存されるから注意ね。
-
-m
はコミットログのメッセージを指定するオプションだよ。
-
git push origin fix-readme-typo
- ローカルのコミット履歴をGitHub(リモートリポジトリ)に送るコマンド🎉
-
origin
は「GitHubの特定リポジトリのあだ名」みたいなもの。 -
fix-readme-typo
はブランチ名だね。ローカルで作った同名のブランチをリモートにアップするわけ!
6. 「origin」はコマンド?それとも名称?
ヒカリ
originって、ずっとコマンドと思っとったばってん、実際は名称なん?
キラリ
そーそー、originはコマンドじゃなくて、リモート先を示すニックネームなんよ💻
-
git clone
すると、クローン元が自動的にoriginって呼ばれるようになるわけ。 -
git remote -v
で確認すると、どこがoriginになっとるか分かる! -
git push origin ブランチ名
みたいに“どこにPushするか”を指定するために使う名称なんだよ✨
7. ブランチを切るメリット
ヒカリ
そういえば、ブランチ切る(git checkout -b ...
)作業って絶対やったほうがよかとです?
キラリ
基本、なんか修正するときは別ブランチでの作業がおすすめだよ🙌
- なんでかっていうと、作業を分離してほかの作業に影響与えないためだね。
- マージしたあとも履歴がシャバくならないし、他のContributorやチームメンバーにも優しい💕
- 絶対チームワークでも評価されるから、もうええでしょってくらいブランチは切っていこう✌️
8. まとめ:最初の一歩は小さくてもOK
ヒカリ
ありがとうございます…!小さい誤字修正でもいいなら、まずは気軽にやってみるばい。英語があんまり得意じゃなかとけど、どうしたらよかと?
キラリ
全然問題ないって!ほとんどのOSSプロジェクトは新規Contributor大歓迎だし、英語のリポジトリでもシンプルな英文ならだいたい伝わるからね✨ 日本語OSSもあるし、ぎりはっぴーでいけばOKだよ👍 最初はマジで気軽にチャレンジしてみて🔥
9. おわりに
今回の会話で、こんなポイントを押さえられたと思うよ😊
-
オープンソースプロジェクトに貢献する基本フロー
- 興味あるリポジトリをFork
- ローカルでブランチ切って作業
- コミット&Push
- Pull Request
- レビュー&マージ
-
Git基本コマンドの裏側
-
git add
はコミット対象ファイルをステージに上げる -
git commit
はローカルにスナップショットを保存 -
git push
はリモートにアップロード -
origin
はリモートリポジトリを指すニックネーム
-
-
小さい修正(誤字脱字)からでも第一歩になる
英語が苦手でも、丁寧に書けば意外と通じるし、日本語OSSもあるから安心してOK🙌 まずはドキュメント修正やらバグ修正やら、小さなことから始めてみて💕
Discussion