Git学習まとめ:clone / pull / プルリクエスト
どうも、拓田です。
改めてcloneとpullとプルリクエストとその流れがわからなかったので備忘のため、まとめました。
✅正直違いがいまいちわからん!
という方の理解の助けになれば幸いです。
1. cloneとpullの違い
| clone | pull | |
|---|---|---|
| 用途 | 初めてリモートリポジトリをローカルに持ってくる | すでにあるローカルリポジトリに差分を反映させる |
| 使うタイミング | 初回のみ | 2回目以降、日常的に使う |
# 初回だけclone(ローカルにまだ何もない状態)
git clone https://github.com/xxx/yyy.git
# 2回目以降はpull(すでにローカルに存在している状態)
git pull
使い分けの基準は「初回かどうか」。
2. プルリクエストとは
あるブランチの変更を別のブランチに統合する前に、レビューと承認を依頼する機能。Git自体の機能ではなく、GitHubなどのサービスが提供している機能。
目的:バグや問題のあるコードを混入させないためのレビュープロセスを必ず通す。
3. プルリクエストの流れ
① 自分のブランチで作業・commit・push
② GitHubでプルリクエストを作成
「このブランチを別のブランチに統合したい」と宣言
③ チームメンバーがコードをレビュー
コメント・修正依頼・承認など
④ 承認されたらmerge
ブランチの内容が統合される
4. pushしてもマージしない理由
pushは「自分のブランチ」にしか反映されないため、mainブランチには影響しない。
自分のPC(featureブランチ)
↓ git push
GitHub(featureブランチ) ← mainにはまだ影響ゼロ
- push:自分のブランチをGitHubに転送するだけ
- merge:ブランチを別のブランチに統合する操作
pushとmergeは別の操作であり、プルリクエストが承認されて初めてmergeが行われる。
5. プルリクエストはmain専用ではない
プルリクエストは「mainブランチ専用」ではなく、あるブランチを別のブランチに統合したいとき全般に使える。
main
└── develop ← mainの開発用ブランチ
└── feature ← 個々の機能開発ブランチ
feature → develop へのプルリクエスト ← 機能完成時
develop → main へのプルリクエスト ← リリース時
6. まとめ
- clone:初回にリモートリポジトリをローカルに持ってくるコマンド
- pull:差分をローカルに反映させるコマンド(2回目以降)
- プルリクエスト:ブランチのマージ時にレビューを挟むための機能。目的はバグの混入防止。