[git] 困った時のコマンド集(直前の commit を別 branch にしたい)

git

commit した直後に、「まちがって、develop に直に commit しちゃった・・・」となることがあります、直前の commit のコミット先を変更する方法を説明します。

環境&対象

以下の環境で動作確認を行なっています。

  • git version 2.30.1 (Apple Git-130)

git の branch 切り忘れた / 別の branch に commit しちゃった

git に commit してから、「branch 切り忘れて、develop に commit しちゃった」と気づくことがあります。

場合によっては、checkout するのを忘れて その前に作業していた branch に commit してしまうことも あるかもしれません。

そのような時の対応方法を説明します。

branch を作り、develop の commit を無かったことにする

「commit を無かったことにする」の応用編(?) です。
git[git] 困った時のコマンド集(直前の commit をなかったことにしたい)

git branch & reset

以下の手順となります。

まず、branch を作ります


% git branch newFeature

ここでは、"newFeature"という名前の branch を作っています。

develop 上の最後の branch を無かったことにする


// (1)
% git checkout develop
// (2)
% git reset --hard HEAD^
コード解説
  1. 念の為、develop branch にいることを確定させます
  2. develop 上の 最後の commit を無かったことにします。

こうすることで、最後の commit は、newFeature 上に残り、 develop 上からは 消えることになります。

注意
リモートに push してしまった commit を無かったことにしてはいけません。

まとめ:直前の commit を別 branch にしたい

直前の commit を別 branch にしたい
  • 新しい commit を行なった箇所で、新しい branch を作成する
  • git reset で develop 上の commit を無かったことにする
  • 注意:リモートに push してしまった commit を無かったことにしてはいけない

説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です