VSCodeで学ぶバージョン管理とGitHub連携(メモ書き)

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 が必要

DE作り直されるため 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モード

モードコマンド例動作
–softgit reset --soft <commit>HEAD だけ戻す(変更はすべてステージングされたまま)
–mixed(デフォルト)git reset <commit>ファイルは残り、ステージング解除
–hardgit 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指定コミットまで戻すあり(戻した部分の履歴消える)ローカルで過去に戻したい時

コメント