この記事の要点
• git add → git commit → git pushが基本ワークフロー
• ブランチ操作はcheckout -bで作成、mergeで統合
• git reset --soft HEAD~1で直前のコミットを安全にやり直し
基本操作
| コマンド | 説明 |
|---|---|
git init | 新しいリポジトリを初期化 |
git clone <url> | リポジトリをクローン |
git status | 作業ディレクトリの状態を確認 |
git add <file> | ファイルをステージング |
git add . | すべての変更をステージング |
git commit -m "message" | コミットを作成 |
git push | リモートにプッシュ |
git pull | リモートからプル |
ポイント: git statusは作業前に必ず確認。ステージングの状態を把握してからコミットする習慣をつけましょう。
ブランチ操作
| コマンド | 説明 |
|---|---|
git branch | ブランチ一覧を表示 |
git branch <name> | 新しいブランチを作成 |
git checkout <branch> | ブランチを切り替え |
git checkout -b <name> | 新しいブランチを作成して切り替え |
git merge <branch> | ブランチをマージ |
git branch -d <name> | ブランチを削除 |
履歴確認
| コマンド | 説明 |
|---|---|
git log | コミット履歴を表示 |
git log --oneline | 1行で履歴を表示 |
git log --graph | グラフ形式で表示 |
git diff | 変更差分を表示 |
git show <commit> | コミットの詳細を表示 |
実践メモ: git log --oneline --graphでブランチの分岐・マージを視覚的に確認できます。エイリアスに登録しておくと便利です。
取り消し操作
| コマンド | 説明 |
|---|---|
git reset HEAD <file> | ステージングを取り消し |
git checkout -- <file> | 作業ディレクトリの変更を取り消し |
git revert <commit> | コミットを取り消す(新しいコミットを作成) |
git reset --hard <commit> | 指定のコミットまで戻す(危険) |
注意: git reset --hardは作業ディレクトリの変更も全て消えます。取り消しできないため、git revert(安全な取り消し)との使い分けを理解しましょう。
リモート操作
| コマンド | 説明 |
|---|---|
git remote -v | リモート一覧を表示 |
git remote add <name> <url> | リモートを追加 |
git fetch | リモートの情報を取得 |
git push -u origin <branch> | 上流ブランチを設定してプッシュ |
実践メモ: git fetchはリモート情報を取得するだけで、ローカルは変わりません。git pullはfetch + mergeの組み合わせです。安全に確認したいときはfetchを先に使いましょう。
便利なエイリアス設定
# ~/.gitconfig に追加
[alias]
st = status
co = checkout
br = branch
ci = commit
lg = log --oneline --graph --decorate
unstage = reset HEAD --
last = log -1 HEAD
amend = commit --amend --no-edit
ポイント: コンフリクトが発生したら慌てずに該当ファイルを開き、<<<<<<<と>>>>>>>の間を手動で修正してからgit add→git commitします。
注意: git push --forceはリモートの履歴を上書きします。チーム開発では--force-with-leaseを使うか、そもそもforce pushを避けましょう。
トラブルシューティング
| 状況 | 解決方法 |
|---|---|
| コミットメッセージを間違えた | git commit --amend -m "新しいメッセージ" |
| 間違えてコミットした | git reset --soft HEAD~1 で戻してやり直し |
| マージコンフリクト発生 | ファイルを編集→git add→git commit |
| プッシュが拒否された | git pull --rebase してから再プッシュ |
| 特定のファイルだけ戻したい | git checkout <commit> -- <file> |
ブランチ運用のベストプラクティス
# 機能開発の流れ
git checkout -b feature/user-auth # 機能ブランチ作成
# ... 開発作業 ...
git add . && git commit -m "feat: ユーザー認証を実装"
git push -u origin feature/user-auth # プッシュ
# PRを作成してレビュー後マージ
git checkout main && git pull # mainを最新に
git branch -d feature/user-auth # ローカルブランチ削除
参考リソース
- Git Reference Manual - 全コマンドの公式リファレンス
- Pro Git Book - 公式書籍 (無料)
- Git Tutorial - 公式チュートリアル
- GitHub Git Cheatsheet - GitHub 提供のチートシート
関連記事
- Git理論編 - Gitの内部構造を理解する
- CI/CDパイプライン - 自動化されたデプロイフロー
- チーム開発のベストプラクティス - モノレポ構成