Git Graphという拡張機能をインストールする
Visual Studio Code の拡張機能マーケットプレイスから Git Graph をインストール

初回コミット前にユーザー設定をする
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
コミット (commit) の流れ
ファイル作成・変更
Gitは管理下にあるフォルダを常に監視しているのでソース管理パネルで変更が検出される
ファイル状態のラベル例:
U : 未追跡(Untrack)
M : 変更(Modify)
D : 削除(Delete)
ステージング → メッセージを入力 → コミット
変更履歴が保存される
リセット (reset) と誤った操作の取り消し
✅ 1. Rebase current branch on this commit
現在のブランチを「指定したコミット」を基点に付け替える(履歴を付け替える)
■ コマンド例
git rebase <commit-id>
■ Rebase 前の状態
main: A ─ B ─ C
\
feature: D ─ E ← 現在のブランチ
feature ブランチを C(コミットID: abc123)に Rebase したい場合
■ Rebase コマンド
git checkout feature
git rebase abc123
■ Rebase 後の状態(履歴を付け替えて作り直す)
main: A ─ B ─ C
\
feature: D' ─ E'
feature ブランチを C(コミットID: abc123)に Rebase したい場合
✔ 特徴ポイント
Push 済みの履歴だと force push が必要
D と E は 作り直されるため ID が変わる
履歴がまっすぐに綺麗になる
※ C と D が “付け替えられて再作成される” ため コミットID が変わります。
🔧 Rebase を使う場面
- 履歴を綺麗にしたい
- 他のブランチの最新コミットを取り込みたい
- 「〇〇の上に乗せたい」という時
⚠️ Rebase の注意
Push 済みのブランチに rebase すると force push が必要 (git push -f)。
履歴が書き換わるため、共有ブランチでは基本禁止!
✅ 2. Reset current branch to this commit
指定したコミットまで現在ブランチを「巻き戻す(移動させる)」
※ rollback ≒ reset
■ コマンド例
git reset --hard <commit-id>
🔧 Reset の3モード
| モード | コマンド例 | 動作 |
|---|---|---|
| –soft | git reset --soft <commit> | HEAD だけ戻す(変更はすべてステージングされたまま) |
| –mixed(デフォルト) | git reset <commit> | ファイルは残り、ステージング解除 |
| –hard | git reset --hard <commit> | 全変更破棄して完全に巻き戻す |
| モード | コミット | ステージング | 作業ディレクトリ |
|---|---|---|---|
| –soft | 取り消す | 保持 | 保持 |
| –mixed | 取り消す | 取り消す | 保持 |
| –hard | 取り消す | 取り消す | 取り消す |
■ Reset 前(feature ブランチ)
feature: A ─ B ─ C ─ D ─ E ← 現在 HEAD
■ Reset コマンド
git reset --hard C
■ Reset 後(C に戻る)
feature: A ─ B ─ C ← D と E は「消える」
✔ 特徴ポイント
D, Eのコミットはブランチ履歴から完全に消える- –hard の場合は 未コミット変更も消える
- やり直しには注意
⚠️ Reset の注意
- –hard はローカルの未コミット変更をすべて破棄するので注意!
- Reset も履歴を書き換えるため、共有ブランチでやると危険。
🔍 使い分けまとめ
| 操作 | 意味 | 履歴書き換え | よく使う場面 |
|---|---|---|---|
| rebase | 履歴を付け替える | あり(コミットID変わる) | 最新を取り込む・履歴整理 |
| reset | 指定コミットまで戻す | あり(戻した部分の履歴消える) | ローカルで過去に戻したい時 |


コメント