今日、初めて、GitHubでドキドキのプルリクエストをしてみた。やり方を忘れないように記録しておく。
参考リンクに貼った複数の動画と、Geminiがとても役に立った。まずは動画にある図などでイメージを掴んでからやるといい。
前提(UbuntuでGitを設定し、GitHubと連携させる)
Geminiに「ubuntu でgit とgithubをつなげる方法」と聞けば、教えてくれた。
フォークする
相手のリポジトリを自分のGitHubアカウント配下にコピーする。
- GitHub上で、修正したいリポジトリのページを開く。
- 画面右上にある 「Fork」 ボタンをクリック。
- 自分のアカウントを選択して作成すると、自分のユーザー名/リポジトリ名 という新しいプロジェクトが作成される。
- 「Copy the main branch only」のチェックは入れたままでOK。
- チェックを入れる(推奨): 最新の安定版である main ブランチだけをコピー
- チェックを外す: そのプロジェクトにある全ての過去の実験用ブランチなども含めて丸ごとコピー。データ量が増えるだけで、基本的には不要なことが多い。
修正作業の流れ
自分の手元(PC)でコードを直すステップ。
1.クローン: 自分のPCにダウンロード。上記でSSHで接続したので、SSHでクローン。
git clone git@github.com:ユーザー名/リポジトリ名.git
2.ダウンロードしたディレクトリに移動
cd リポジトリ名
3.ブランチ作成: 修正専用の枝分かれを作る(これがマナーらしい)。fix-bugの箇所は任意のブランチ名を入力。なお、git checkout -b [名前]は「新しい枝(ブランチ)を作って、そこへ移動する」コマンド。
git checkout -b fix-bug
- ブランチに移動したことを
git branchで確認。fix-bugに*ついていればOK。
4.ファイルを修正、保存。
5.修正したファイルをインデックスステージに登録する。
git add ファイル名
または(以下は「変更したすべてのファイルを、次のコミット(保存)の対象として登録する」。. は、「カレントディレクトリ(今の場所)にあるすべて」 を指す。)
git add .
git statusでファイル名が緑色の文字になっていれば、add済み。赤文字はaddしていない状態。
6.コミットする。mはメッセージ。
git commit -m "不具合を修正しました"
7.プッシュ: 修正をGitHub(自分のフォーク先)に送る。
git push origin fix-bug
プルリクエスト(修正を提案する)
元の作者に「直したので取り込んでください!」と伝える。
- GitHub上の自分のフォークしたリポジトリを開く。
- リポジトリ名の下にある「main」をブランチしたもの(fix-bug)に切り替えると、「Compare & pull request」という黄色いボタンが出ているはずなので、それをクリック。
- タイトルと内容を書く。どんな不具合を見つけたか。どうやって直したか。
- Create pull request を押せば完了
自分のプルリクエストが承認されて、マージされた後
GitHubで
- 相手にお礼を書く。
- 自分のリポジトリのトップページ(main ブランチ)に行き、「Sync fork」 を押して 「Update branch」 をクリック。
- これによって、「自分が直した内容(+他人が直した最新の内容)」が、本家からあなたの main に逆輸入される。
- 「Delete branch」で作業枝を消す。
- マージが完了した後の 「Delete branch」 ボタンを押す。これは「fix-bug という名前の作業用の枝」を消すだけ。
自分のPCで
- 自分のPC(ローカル)の端末で以下をやり、自分のPCの側も最新にする。
# 1. 自分の main ブランチに切り替える git checkout main # 2. GitHub上の最新状態(Sync forkした内容)をPCに持ってくる git pull origin main # 3. 使い終わった手元の枝を消す git branch -d fix-bug