GitHubでの基本的なブランチ操作とワークフロー
はじめに
GitHubでの開発作業で最もよく直面する課題は、ブランチの管理とマージの手順です。この記事では、基本的なGitHubワークフローを段階的に説明していきます。
基本的なワークフロー
1. mainブランチの更新
新しい作業を始める前に、必ずmainブランチを最新の状態にします:
mainブランチに切り替え:
git checkout main
リモートの変更を取得:
git pull origin main
2. 作業用ブランチの作成
新しいブランチを作成して切り替え:
git checkout -b feature/new-feature
または、最新のGitでは以下のコマンドも使えます:
git switch -c feature/new-feature
3. 作業とコミット
ファイルの変更を確認:
git status
変更をステージングエリアに追加:
git add .
コミット:
git commit -m "機能追加: 新機能の実装"
4. mainブランチの変更を取り込む
作業中にmainブランチが更新された場合:
mainブランチの最新変更を取得:
git checkout main
git pull origin main
作業ブランチに戻る:
git checkout feature/new-feature
rebaseで変更を取り込む:
git rebase main
5. コンフリクトの解決
rebase中にコンフリクトが発生した場合:
コンフリクトしたファイルを編集
編集後、ファイルを追加:
git add .
rebaseを続行:
git rebase --continue
6. プッシュとプルリクエスト
初回プッシュ:
git push -u origin feature/new-feature
2回目以降のプッシュ(rebase後は--forceが必要な場合も):
git push --force-with-lease origin feature/new-feature
重要なポイント
1. 作業前の確認
・必ずmainブランチを最新にしてから新しいブランチを作成
・ブランチ名は作業内容がわかりやすいものに
2. こまめなコミット
・機能単位で小さくコミット
・コミットメッセージは明確に
3. rebase時の注意点
・公開されたブランチでのrebaseは避ける
・コンフリクト解決時は慎重に
4. force pushの使用
・--force-with-leaseを使用して安全にプッシュ
・他の開発者と作業している場合は特に注意
よくあるトラブルと解決方法
ブランチの切り替えに失敗する場合:
変更を一時保存:
git stash
ブランチを切り替え:
git checkout target-branch
保存した変更を復元:
git stash pop
rebaseを間違えた場合:
rebaseを中止して元に戻す:
git rebase --abort
pushを間違えた場合:
直前のコミットを取り消し:
git reset --soft HEAD^
または、リモートの状態に強制的に合わせる:
git reset --hard origin/branch-name