8
5

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】間違えてmasterブランチやdevelopブランチでコミットしちゃった!

Last updated at Posted at 2024-09-22

どうもこんにちは。

今回は、間違えてmasterブランチやdevelopブランチでコミットしちゃった時の対処法をメモしておきます。

コミットする前の場合

masterブランチやdevelopブランチで修正をしてしまったが、コミットはしていない!という場合は、以下の手順でコミットすればOKです。

$ git status    # git addされているファイルがないことを確認
git stash  # 変更を一時保存
git checkout -b feature-branch  # 新しいブランチを作成して切り替え
git stash pop  # 保存した変更を適用
git add <コミットしたいディレクトリやファイルのパス>  # 変更をステージング
git commit -m "作業内容の説明"  # コミット

コミットしちゃった時

一番頑張る方法

まず何らかの形でコミットしたコードを残します。(メモ帳とか)

$ git reset --hard HEAD^1 # 直前のコミットを取り消し
$ git checkout -b <作業ブランチの名前>
# ここでメモしておいたコードをペースト
$ git add <コミットしたいディレクトリやファイルのパス>
$ git commit -m "コミットメッセージ"

cherry-pick を使用する方法

コミットをそのまま新しいブランチに移動させることができます。

$ git log  # コミットのハッシュを確認してコピー
$ git checkout -b <作業ブランチの名前>  # 新しいブランチを作成
$ git cherry-pick <コピーしたコミットのハッシュ>  # コミットを新しいブランチに適用
$ git checkout develop  # developに戻る
$ git reset --hard HEAD~1  # developから誤ったコミットを削除

インタラクティブrebaseを使用する方法

複数のコミットを移動させたい場合に使います。

$ git checkout -b <作業ブランチの名前>  # 新しいブランチを作成
$ git rebase -i develop  # インタラクティブrebaseを開始
# エディタで移動させたいコミットを'pick'から'edit'に変更
# rebaseを完了
$ git checkout develop
$ git reset --hard HEAD~<移動させたコミットの数>

まとめ

インタラクティブrebaseを使用する方法 はちょっと難易度高いですね...
自分はcherry-pickを使用する方法をおすすめします。

というか、コミットする前にブランチ確認しましょうね!

以上

8
5
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
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?