🐾
Git 完全ガイド:チームプロジェクト版
はじめに
プログラミングといえば、やはりチームプロジェクト!
チームプロジェクトにも欠かせないのがコード管理です!
そこでややこしいGitのコマンドを自分なりにわかりやすくまとめてみました!
誰かのお役に立てれば嬉しいです!!
1 基本フロー(プロジェクトの作業の流れ)
| 手順 | 目的 | コマンド |
|---|---|---|
| ① 最新の dev を取得する | 全員の最新コードを受け取る |
git switch dev → git pull
|
| ② 作業ブランチを作成 | 1 機能 1 ブランチ | git switch -c feature/xxxx |
| ③ 修正作業 | コードを書く | |
| ④ 変更をステージング | 変更を登録 | git add . |
| ⑤ コミット作成 | スナップショット保存 | git commit -m "説明" |
| ⑥ リモートへPush | GitHubに上げる | git push -u origin feature/xxxx |
| ⑦ PR作成 | dev にマージ依頼 | GitHubで → |
| ⑧ レビュー&マージ | チームで確認して統合 | |
| ⑨ 作業終了 | ブランチ削除 |
git switch dev → git branch -D feature/xxxx
|
2 事例集
🔥 main と dev の各役割と関係性
| ブランチ | 役割 |
|---|---|
| main | 製品として公開できる完成版(常に安定) |
| dev | 開発途中の統合ブランチ(新機能の集約場所) |
流れの考え方
feature → dev → main
具体的な役割
| 名称 | 説明 |
|---|---|
| feature | 各自の開発作業を行うブランチ |
| dev | feature の変更をまとめて動作確認する |
| main | dev で確認済みの完成コードのみを反映 |
何のために分けるの?
| 理由 | 説明 |
|---|---|
| 本番環境を壊さないため | main はいつでもデプロイ可能な状態にしておく |
| 作業を分離して安全にする | 個人のミスがそのまま main へ行かない |
| レビュー&テストを挟む | 品質担保 |
権限ルール例
| ブランチ | 誰が変更できる? |
|---|---|
| feature | 各自 |
| dev | 誰でもPRで可 |
| main | リーダー / 管理者のみ |
🔥 作業中に dev が更新された!どうする?
git switch dev
git pull
git switch feature/xxxx
git rebase dev
git push -f
| ポイント | 理由 |
|---|---|
| rebase | 最新devに自分の作業を追従 |
| push -f | rebaseで履歴が書き換わるため上書きが必要 |
🔥 push しようとしたら rejected や non-fast-forward と出た
解決:
git pull --rebase
git push
🔥 ブランチを切り替えたいけど変更があって切り替えできない
エラー:
error: Your local changes to the following files would be overwritten
解決方法①:一時退避
git stash
git switch dev
解決方法②:先にコミットしてしまう
git add .
git commit -m "WIP"
git switch dev
🔥 コンフリクトが発生した
コンフリクトとは:
複数人が同じファイルの同じ行を変更して衝突した状態
解決手順:
- VSCode で
<<<<<< HEADを確認 - どの変更を採用するか選択(both/ours/theirs)
- 保存
git add .-
git rebase --continueorgit commit
🔥 初めて push するとき upstream を求められた
git push -u origin feature/xxxx
一度設定すると次から git push だけでOK
🔥 PR 作成時のコメント例
## 変更内容
- 会員登録画面のページ遷移を追加
- ローディングアニメーション追加
## 確認方法
1. http://localhost:3000/register にアクセス
2. ボタンを押すと login page へ移動する
## 注意点
- devをrebase済み
3 ブランチの命名ルール(プロの現場標準)
| 種類 | 形式例 | 意味 |
|---|---|---|
| feature | feature/login-ui |
新機能追加 |
| fix | fix/login-crash |
バグ修正 |
| hotfix | hotfix/api-token |
緊急修正 |
| doc | doc/readme-update |
文章 / 設定変更 |
| chore | chore/refactor-components |
修正全般、整理 |
4 merge vs rebase どちらを使う?
| merge | rebase |
|---|---|
| 履歴が残る | 履歴が綺麗 |
| コンフリクトが少ない | push -fが必要 |
| 初心者向き | 中級者以上 |
💡 チーム開発では feature → dev へは PR(merge)
dev を更新するときは rebase 推奨
5 実用フローチャート(迷ったらこれ見ればOK)
作業したい
↓
git switch dev
git pull
↓
git switch -c feature/xxxx
↓
作業
↓
git add .
git commit -m ""
git push
↓
PR
↓
レビュー後
git switch dev
git pull
git branch -D feature/xxxx
6 おまけ:必殺コマンド早見表
| コマンド | 目的 |
|---|---|
git status |
現在の状態チェック |
git log --oneline |
履歴確認 |
git diff |
変更内容確認 |
git stash pop |
stashの復元 |
git branch |
ブランチ一覧表示 |
Discussion