3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Git】プチ困った!を解決する便利コマンド【ケース別解説5選】

Last updated at Posted at 2025-12-04

はじめに

「Qiita全国学生対抗戦 Advent Calendar 2025」5日目の記事は、Gitの使い方についてのTipsです。

私は、普段Gitをコマンドラインで使用して開発を進めているのですが、時折「あっ...」というような作業ミスをしてしまうことがあります。

Gitではコミット履歴を綺麗に保つことが推奨されています。この記事では、そんな「困った!」という時に、コマンドで華麗に問題を解決できるコマンドを紹介します!

  • Gitをコマンドラインで基本操作ができる方
  • Git初心者から、さらにステップアップしたい方
  • Gitをさらに使いこなしたい方

この記事が、少しでもGitのコマンドを検索する手間が減り、開発を効率化する助けになれば幸いです!

Gitで困った、あるあるケース5選

ここからは私の遭遇したGitで困った、以下のあるあるケース(?)から、便利コマンドを紹介します。

  • 作業途中だけど別のbranchに切り替えたい
  • branch名を間違えた・変更したい
  • commitメッセージを間違えた
  • 前のcommitに入れるべき内容を含んでいなかった
  • commitを取り消して無かったことにしたい

作業途中だけど別のbranchに切り替えたい

とあるブランチで作業をしていて、急に別のブランチの修正をしなければいけない、でも変更はコミットしたくない、という時に使えます。

# 現在の変更を一時的に退避
$ git stash

# ブランチを移動
$ git checkout <別ブランチ>

# ... 別ブランチでの作業 ...

# 元のブランチに戻る
$ git checkout <元のブランチ>

# 退避した変更を元に戻し、stashを削除する
$ git stash pop

git stash は、コミットしていない変更を、一時的に隠しておくためのコマンドです。
git stash pop をすることで、コミットしていない変更を元に戻せます。

また退避した変更は、git stash listで確認できます。
git stash pop は、コミットしていない変更を元に戻せますが、同時に退避した変更も削除されます。
もし退避した変更を保存したまま、変更も戻したいのであれば、git stash applyが使えます。

ちなみに退避した変更は、スタック構造に保存されているそうです。

branch名を間違えた・変更したい

ローカルで作成したブランチの名前をタイポしてしまった、もっと分かりやすい名前に変えたい、という時に使えます。

pushする前の場合

まだリモートにプッシュしていない場合は、以下のコマンドで簡単に変更できます。

# 現在のブランチ名を変更
$ git branch -m <新しいブランチ名>

# 別のブランチにいる場合
$ git branch -m <古いブランチ名> <新しいブランチ名>

pushした後の場合

すでにリモートにプッシュしてしまった場合は、少し手順が増えます。

  1. ローカルのブランチ名を変更
  2. リモートの古いブランチを削除
  3. 新しい名前でブランチをプッシュ
  4. 上流ブランチを設定(git pushのみでプッシュ可能にする)
# 1. ローカルのブランチ名を変更
$ git branch -m <新しいブランチ名>

# 2. リモートの古いブランチを削除
$ git push origin --delete <古いブランチ名>

# 3. 新しい名前でブランチをpush
$ git push origin <新しいブランチ名>

# 4. 上流ブランチを設定
$ git push origin -u <新しいブランチ名>

これは、改名前のブランチ名を覚えておく、ということが必要そうですが...

commitメッセージを間違えた

直前のコミットメッセージにタイポがあったり、内容を修正したい場合に便利です。

$ git commit --amend -m "<新しいメッセージ内容>"

なんとこれだけで、最新のコミットメッセージを修正できます。
-mフラグを使えば、エディタを開かずに直接コマンドラインでメッセージを修正できます。

前のcommitに入れるべき内容を含んでいなかった

コミットはある種のまとまりごとに行った方がいいのですが、時折ファイルをコミットするのを忘れてしまうことがあります。

「あ、このファイルもさっきのコミットに含めるべきだった!」という時に便利です。

# ファイルをステージング
$ git add <ファイル名>

# --no-edit をつけるとメッセージを修正せずにコミットを修正できる
$ git commit --amend --no-edit

これで、直前のコミットにファイルを追加することができます。
ファイルをステージングすることを忘れないようにしましょう。

--amendは便利ですね!

commitを取り消して無かったことにしたい

これもプッシュ前とプッシュ後で、方法が少し異なります。

pushする前のコミットを取り消したい

ローカルでのみ作業している場合は、2つの方法があります。

# 直前のコミットを取り消して、変更は残す(ステージングも解除)
$ git reset --soft HEAD^

# 直前のコミットを取り消して、変更も完全に削除する
$ git reset --hard HEAD^

HEAD^ は1つ前のコミットです。

--soft--hardで、コミットのみを取り消すのか、コミット内容も一緒に取り消すのか、違いが分かれます。

pushした後のコミットを取り消したい

既にプッシュしてしまったコミットは、先ほどのgit resetを使う代わりに git revert を使います。

revert は、指定したコミットを打ち消す新しいコミットを作成します。

# 取り消したいコミットのハッシュを指定
$ git revert <コミットハッシュ>

# エディタが開くので :wq などで保存して抜ける

# 変更をリモートにプッシュ
$ git push origin <ブランチ名>

これにより、「〇〇のコミットを取り消した」という履歴が残り、安全に間違いを修正できます。

なお、コミットハッシュ値はgit logなどで確認できます。

おわりに

今回の執筆をきっかけに、Gitのよくある困ったケースに瞬時に対応できるようになりました!

Gitにはまだまだ便利な機能や、チーム開発に活きる機能がたくさんあります。

開発をより効率化させて質の良いコードを書くためにたくさん時間が当てられるように、開発者用ツールの使い方も慣れていかないといけないな、と感じさせられました。

それでは、明日の「Qiita全国学生対抗戦 Advent Calendar 2025」の記事もお楽しみに!

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?