Gitを触りはじめたばかりの方に向けた記事です。
実際の研修で行った「他己紹介」を例に、ブランチの作成からPull Requestまでの流れをまとめました。
まずは一連の流れをつかみたい!という方は、ぜひ参考にしてください。
Gitの基本的な流れ
Gitでは、コードの変更を記録し、GitHubで他の人と共有するまでに、次のような流れで作業を行います。
作業フォルダでコードを編集
│
│ git add
▼
ステージングエリアに変更を登録
│
│ git commit
▼
ローカルリポジトリに履歴として保存
│
│ git push
▼
GitHub(リモートリポジトリ)
※自分のPCのことを「ローカル」、GitHub上のことを「リモートリポジトリ」と呼びます。
「変更する → 登録する → 記録する → GitHubへ送る」という流れになっています。
- 変更する:コードを編集する
- 登録する:コミットしたい変更を選ぶ
- 記録する:変更履歴として保存する
- GitHubへ送る:他の人と共有できる状態にする
今回は、この流れの中で使われるコマンドの操作手順を中心に解説します。
「ステージングエリアって何?」「なぜ一度登録する必要があるの?」といった仕組みについては、以下の記事で解説しています。
目次
Gitでコードに変更を加える手順
今回はUserAさんに執筆者Hが他己紹介を追加する例で説明します。
1.最新のmainを取得する
git switch main
git pull
ローカル(自分のPC)のmainブランチを最新の状態にします。
💡ポイント
別のブランチにいる状態で
git pullすると、そのブランチが更新されてしまいます。新しくブランチを作成する前は、
git switch mainでmainへ移動してからgit pullすると安全です。
2.作業用ブランチを作成する
git switch -c comment-user_a
mainブランチをもとにcomment-user_aというブランチを作成し、そのブランチへ移動します。
3.コードを編集する
今回はUserAさんへの他己紹介を追加します。
4.変更を登録する
まずはgit statusで変更内容を確認します。
自分が意図したファイルだけが変更対象になっているか、余計なファイルや削除が含まれていないかを見てから、必要なファイルをステージングしましょう。
git status
問題なければ、変更したファイルをステージングエリアに登録します。
ステージングエリアは、「次にコミットする変更を一時的に置いておく場所」です。
git add profile.md
特定のファイルだけ登録したい場合は、ファイル名を指定します。
この場合は、profile.mdだけが登録されます。
git add .は、今いるフォルダの中で変更したファイルをすべて登録します。複数ファイルをまとめて追加したい場合のみ使用すると安心です。
5.コミットする
git commit -m "執筆者H→UserAへの他己紹介を追加"
ステージングした変更を変更履歴として保存します。
-mで指定した文章はコミットメッセージと呼ばれ、後から「どんな変更をしたのか」がわかるようにするための補足テキストになります。
GitHubでも、このメッセージがコミット履歴として表示されます。
💡ポイント
まだGitHubには反映されていません。
GitHubへ送るには、次の手順でgit pushを実行します。
6.GitHubへ送る
初回だけ
git push -u origin comment-user_a
2回目以降は
git push
でOKです。
git pushを実行すると、ローカルで保存した変更がGitHubへ送られます。
初めてgit pushするブランチでは、-uを付けてGitHub上のブランチと紐付けます。
これにより、次回以降はgit pushだけで同じブランチへpushできるようになります。
7.Pull Requestを作成する
git pushした後にGitHubを開くと、「Compare & pull request」というボタンが表示されます。
そのボタンをクリックし、Pull Request(PR)を作成します。
Pull Requestを作成したら、レビュアーに変更内容を確認してもらいます。
レビューでApproveされた後、Mergeされると、変更内容がmainブランチへ反映されます。
メモ
Pull Requestは、「この変更をみんなが使うコードに取り込んでも大丈夫ですか?」と他の人に確認してもらう仕組みです。
8.作業ブランチを削除する
Merge後は、不要になった作業ブランチを削除します。
ローカルのブランチを削除
git switch main
git branch -d comment-user_a
別のブランチに移動してから削除を行います。
git branch -dは、Merge済みのブランチを削除するコマンドです。
GitHub上のブランチを削除
git push origin --delete comment-user_a
GitHub上に作成したブランチも不要であれば削除できます。
これで一連の作業は完了です。
【補足】git switch と git checkout の違い
Gitでは、以前はブランチの切り替えにもgit checkoutが使われていました。
例えば、
git checkout main
は、
git switch main
とほぼ同じ意味です。
git checkoutにはブランチの切り替え以外にも、ファイルを元に戻すなど複数の役割があり、初心者には少し分かりづらいコマンドでした。
そのため、役割を分かりやすくする目的でgit switchが追加され、現在はブランチの切り替えや作成にはこちらを使うことが推奨されています。
おわりに
今回は、Gitの基本的な流れと、ブランチの作成からPull Requestまでの手順を紹介しました。
最初は覚えることが多く感じるかもしれませんが、何度か繰り返し操作するうちに自然と慣れていきます。
私も実際に同期の他己紹介を10人ほど行い、少しずつ体に染みついていきました。
今後は、
- paizaラーニングでのおすすめの学習順
- なぜ
git addとgit commitが分かれているのか - Gitのコンフリクトへの対処法
の記事も書く予定です。
この記事が、これからGitを学ぶ方の参考になればうれしいです!
では、また。