👧

GitHubでオープンソースに貢献する方法

1. はじめに

若干自分用ですが、メモで。
わかりやすいように、会話形式で整理しています!

2. 会話の背景

最近、生成AIに興味を持ち始め、GitHub上でいろいろなAI関連プロジェクトを見ています。しかし、そもそも「どうやったらプロジェクトのContributorになれるのか?」といったGitやGitHubの基本をまだよくわかっていません。そこで社内のGitHub熟練者であるキラリさんに相談してみることにしました。
博多弁のヒカリと、ギャルのキラリとの会話を楽しみながらご一読ください。笑

3. オープンソースのContributorになるには?

ヒカリ
キラリさん、GitHubでいろんなプロジェクトば見よるとやけど、うちもContributorになりたかとよ。具体的にどげんすればよかと?ちょっと緊張しとーけん、教えてもろうてもよかですか?

キラリ
おっ、めっちゃいいじゃん!Contributorになるにはね、大きくこんなステップ踏むといいと思うよ✨

  1. 興味あるプロジェクトを見つける

    • 自分が使ってるツールやライブラリ。
    • もしくは自分のスキルや興味分野(Python、フロントエンド、AIとか)。
    • Good first issue タグついてるIssue探すのもガチおすすめ💕
  2. Issueを読んで、できそうなタスクを探す

    • バグ(bug)や機能改善(enhancement)、ドキュメント(documentation) などのラベル付きIssueをチェック。
    • わかんないとこあったらコメントで質問しちゃお?英語でも日本語プロジェクトなら日本語でOKだよ💻
  3. Forkして、修正・機能追加する

    • ターゲットのリポジトリを自分のアカウントにForkする。
    • 自分の環境へクローンして開発を進める。
    • 作業用ブランチを切って作業する(例:fix-typo-in-readme)。
  4. Pull Request(PR)を送る

    • 変更点をわかりやすくまとめてPRを作成する。
    • 関連Issueがあれば Closes #XXX て付けとこ!
    • どんな意図・理由で修正したのかサクッと書くと神対応✨
  5. レビューを受けて修正し、マージされる

    • メンテナーや他のContributorがレビューくれるから、それに応じて修正&再Push。
    • 問題なければマージされて、晴れてContributorデビュー!💕

最初はマジ小さな修正でも全然OKだし、誤字の修正でも立派な貢献だからね👍


ヒカリ
なるほど……!ドキュメントの誤字修正とかしかできんと思いよったけど、それでも貢献になると?

キラリ
なるなる✨最初は簡単なとこから慣れていって、徐々に範囲広げてけばいいんだよ。絶対できるって!😊


4. 実際にPRを出す流れ

ヒカリ
いま、ちょうどこのリポジトリばForkしてプルリク送るっちゃけど、どげん流れでやったらよかと?ドキュメント修正やってみたいんよね。

キラリ
じゃあ手順まとめるね⭐ README修正のサンプルなら、こんなフローでいけるよ:

  1. 対象リポジトリをFork

    • GitHub上でリポジトリ開いて、右上のForkボタン押すだけ✨
  2. ローカル環境で作業

    # (自分のGitHubユーザー名)/(貢献したいリポジトリ.git) をクローン
    git clone https://github.com/あなたのユーザー名/(貢献したいリポジトリ.git)
    cd (貢献したいリポジトリ名)
    
    # 新しいブランチを切る(例:READMEのtypo修正)
    git checkout -b fix-readme-typo
    
  3. 修正の反映

    • READMEとか誤字の修正箇所を編集する。
    • コミットして、ローカルで変更を保存する。
    git add .
    git commit -m "Fix typo in README"
    
  4. 変更をGitHubにPush

    • GitHub上(Fork先)にアップロードする。
    git push origin fix-readme-typo
    
  5. 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. おわりに

今回の会話で、こんなポイントを押さえられたと思うよ😊

  • オープンソースプロジェクトに貢献する基本フロー

    1. 興味あるリポジトリをFork
    2. ローカルでブランチ切って作業
    3. コミット&Push
    4. Pull Request
    5. レビュー&マージ
  • Git基本コマンドの裏側

    • git add はコミット対象ファイルをステージに上げる
    • git commit はローカルにスナップショットを保存
    • git push はリモートにアップロード
    • origin はリモートリポジトリを指すニックネーム
  • 小さい修正(誤字脱字)からでも第一歩になる

英語が苦手でも、丁寧に書けば意外と通じるし、日本語OSSもあるから安心してOK🙌 まずはドキュメント修正やらバグ修正やら、小さなことから始めてみて💕

Accenture Japan (有志)

Discussion