メインコンテンツへスキップ
記事一覧に戻る
tools

【Git中級者への道】知ってると得する発展Gitコマンド集2025|cherry-pick・rebase・stash完全理解

git cherry-pick、rebase、stashなど、知っていると開発効率が劇的に上がるGitコマンドを図解で丁寧に解説。仕組みから理解できる。

2025-12-0914 min readAdabana Saki
-
GitGitHub中級者チートシート開発ツールrebasecherry-pick

知ってると得する発展Gitコマンド集2025

「git add、commit、push は分かった。でも、もっと便利に使えないの?」

そう思ったあなたは、次のステップに進む準備ができています。

この記事では、知っていると開発効率が劇的に上がるGitコマンドを紹介します。cherry-pick、rebase、stashなど、名前だけ聞くと難しそうですが、仕組みはとてもシンプルです。

「どういうロジックで動くのか」を図解で丁寧に説明するので、安心して読み進めてください。

基本コマンドをまだ覚えていない方は、まず【超初心者向け】Gitコマンド完全チートシート2025をご覧ください。

この記事で学べるコマンド

コマンド一言で言うと使う場面
git stash作業を一時退避急な割り込み対応
git cherry-pick特定コミットだけ取り込む必要な変更だけ欲しい時
git rebase履歴を直線的に整理きれいな履歴にしたい時
git revert打ち消しコミットを作る安全に取り消したい時
git bisectバグ発生地点を特定どこで壊れたか調べたい時
git reflog操作履歴を見るやらかした時の復旧
git worktree複数ブランチを同時作業並行作業したい時

それでは、一つずつ見ていきましょう。

git stash - 作業を一時退避する

どういうロジック?

stash(スタッシュ)は「一時退避ボックス」です。

作業中の変更を一旦しまっておいて、後で取り出せます。

Text

実践シナリオ

「新機能を開発中に、緊急のバグ修正依頼が来た!」

こんな時、stashが活躍します。

Bash

コマンド一覧

コマンド何をする
git stash作業を退避(メッセージなし)
git stash push -m "メッセージ"メッセージ付きで退避
git stash list退避した一覧を見る
git stash pop最新を取り出して削除
git stash apply最新を取り出す(削除しない)
git stash drop最新を削除

popとapplyの違い: popは取り出したら消える、applyは残る。applyは「念のため残しておきたい」時に使います。

git cherry-pick - 特定のコミットだけ取り込む

どういうロジック?

cherry-pick(チェリーピック)は「つまみ食い」です。

別のブランチから、欲しいコミットだけを選んで持ってこれます。

Text

実践シナリオ

「featureブランチで作ったバグ修正を、先にmainに適用したい」

Bash

コマンド

Bash

git rebase - 履歴を直線的に整理する

どういうロジック?

rebase(リベース)は「履歴の付け替え」です。

mergeとの違いを図で見てみましょう。

Text

いつ使う?

  • merge: チームで作業している時(履歴を残したい)
  • rebase: 個人の作業ブランチを整理したい時

コマンド

Bash

インタラクティブrebase(コミットをまとめる)

細かく分けすぎたコミットを1つにまとめたい時に使います。

Bash

エディタが開いて、こんな画面が出ます:

Text
Text

重要な注意点

公開済み(pushした)コミットはrebaseしない!

rebaseすると履歴が書き換わるため、他の人の作業と衝突します。rebaseは自分だけの作業ブランチで使いましょう。

git revert - 安全に取り消す

どういうロジック?

revert(リバート)は「打ち消しコミット」を作ります。

resetとの違いを図で見てみましょう。

Text

いつ使う?

  • reset: まだpushしていないコミットを取り消したい
  • revert: すでにpushしたコミットを安全に取り消したい

revertは履歴を消さないので、チーム開発でも安心して使えます。

コマンド

Bash

git bisect - バグの発生地点を特定する

どういうロジック?

bisect(バイセクト)は「二分探索」でバグを見つけます。

「ここは動いてた」「ここはバグってる」の間を自動で絞り込んでくれます。

Text

100コミットあっても、7回程度の確認で特定できます(log₂100 ≈ 7)。

コマンド

Bash

git reflog - 全ての操作履歴を見る

どういうロジック?

reflog(リフログ)は「Gitの操作履歴」です。

git logはコミット履歴だけですが、reflogは全ての操作を記録しています。

Text

いつ使う?

「やらかした!」時の最終手段です。

  • reset --hardで消してしまったコミットを復元
  • 間違えてブランチを削除してしまった
  • rebaseで履歴がおかしくなった

コマンド

Bash

reflogがあるので、Gitでは「完全に消える」ことはほぼありません。 安心してください。

git worktree - 複数ブランチを同時に作業

どういうロジック?

worktree(ワークツリー)は「ブランチごとにフォルダを分ける」機能です。

通常、ブランチを切り替えるとファイルの内容が変わりますが、worktreeを使うと別フォルダとして両方を開けるようになります。

Text

いつ使う?

  • レビュー中のコードと自分の作業を同時に見たい
  • 2つの機能を並行して開発したい
  • ビルドに時間がかかるプロジェクトで切り替えを避けたい

コマンド

Bash

状況別「どれを使う?」早見表

こうしたい使うコマンド
作業を一時中断したいgit stash
特定のコミットだけ欲しいgit cherry-pick
履歴をきれいにしたいgit rebase
公開済みの変更を取り消したいgit revert
いつからバグってた?git bisect
やらかしを復旧したいgit reflog
2つのブランチを同時に見たいgit worktree

よくある失敗と復旧方法

rebase中にコンフリクトで詰まった

Bash

間違えて reset --hard した

Bash

cherry-pickでコンフリクト

Bash

まとめ

今回紹介したコマンドをもう一度おさらいします。

Text

全部を今すぐ覚える必要はありません。

「こういう時に使えるコマンドがあるんだな」と頭の片隅に入れておいて、必要な時にこのページに戻ってくれば大丈夫です。

シリーズリンク

一緒にGitを使いこなしていきましょう。

参考リンク