
学習で使うGitと実務のGitは違う
学習で使うGitと実務のGitは違う
プログラミング学習中のadd、commit、pushの3コマンドで
ここでは、
ブランチ戦略の基本
Git Flowとは
多くの
| ブランチ | 用途 | 誰が |
|---|---|---|
main | 本番環境の | リリース担当者 |
develop | 開発中の | 開発者 |
feature/* | 機能開発用 | 開発者が |
hotfix/* | 緊急バグ修正用 | 緊急対応時に |
release/* | リリース準備用 | リリース前の |
GitHub Flowとは
Git Flowを
mainブランチが常に デプロイ可能な 状態 - 新しい
作業は mainからブランチを 切る - PRを
作成して レビューを 受ける - マージしたら
即デプロイ
ブランチの作り方と切り替え
実務でよく
- 最新の
developを取得する —git checkout develop && git pull - 新しい
ブランチを 作成する — git checkout -b feature/user-registration - 作業が
終わったら コミットする — git add . && git commit -m "feat: ユーザー登録機能を追加" - リモートに
プッシュする — git push origin feature/user-registration - GitHubで
PRを 作成する
コンフリクトの解消方法
チーム開発では、
コンフリクトが起きる原因
- 同じ
ファイルの 同じ 行を、 別の ブランチで 編集した - 一方で
削除した ファイルを、 もう 一方で 編集した
コンフリクト解消の手順
- 最新の
developを —マージする git merge develop - コンフリクトが
発生した —ファイルを 確認する git statusで確認 - ファイルを
開いて —修正する <<<<<<<と>>>>>>>の間の内容を 確認し、 正しい 内容に 修正する - 修正を
確認する — 動作確認を必ず 行う - コミットする —
git add . && git commit -m "merge: developとのコンフリクトを解消"
コンフリクトを減らすコツ
- こまめに
developを — 長期間マージしないと、マージする 大量の コンフリクトが 発生する - PRを
小さく — 変更範囲が保つ 小さい ほど、 コンフリクトの 可能性が 減る - チームで
編集範囲を — 「今この共有する ファイルを 触って います」と 事前に 伝える
実務レベルの
知っておくべきGitコマンド
コミット履歴の管理
git log --oneline— コミット履歴を一覧で 確認する git diff— 変更内容を確認する git stash— 作業中の変更を 一時退避する (ブランチを 切り替えたい ときに 便利) git stash pop— 退避した変更を 復元する
やり直し系のコマンド
git reset --soft HEAD~1— 直前のコミットを 取り消す (変更は 残る) git checkout -- ファイル名— 特定のファイルの 変更を 取り消す git revert コミットID— 特定のコミットの 変更を 打ち消す新しい コミットを 作る
注意すべきコマンド
git push -f(force push)は原則禁止。他のメンバーの 作業を 上書きして しまう 可能性がある git reset --hardは変更が完全に 消える。 使う 前に 本当に 消していいか 確認する
コミットメッセージの書き方
Conventional Commitsの形式
多くの
| プレフィックス | 用途 | 例 |
|---|---|---|
feat: | 新機能追加 | feat: ユーザー登録機能を追加 |
fix: | バグ修正 | fix: ログインエラーのハンドリングを修正 |
refactor: | リファクタリング | refactor: API呼び出し処理を共通化 |
style: | コードスタイルの | style: インデントを統一 |
docs: | ドキュメント更新 | docs: READMEにセットアップ手順を追加 |
test: | テストの | test: ログイン機能のユニットテストを追加 |
Git操作は「慣れ」がすべて
Gitのmergeやrebaseは失敗すると
ゆめさくエンジニアでは、18ヶ月の
チーム開発で
チーム開発の
Git/PR/レビューの
CI/CDとは?
デプロイ自動化の
初めての
レビューで
ゆめさくエンジニアの
18ヶ月で




