2017-11-14
[Git]間違ったブランチへコミットしてしまった際に、修正する方法。
概要
feature/fix01
ブランチでadd text
を行い。その後本来develop
からfeature/about
ブランチを切ってするべきだったmake about html
とadd about/style.css
をfeature/fix01
ブランチのまま作業してしまった。
このようにfaeture/fix01
に間違ってコミットしてしまった物を、本来のfeature/about
ブランチへ移動させたい。
コミットログ
commit ed3a060acd612c6242fdf91e43b86c33ff07a9d2 (HEAD -> feature/fix01)
Author: Author Name <hoge@fuga.com>
Date: Tue Nov 14 10:21:53 2017 +0900
add about/style.css
commit 9f42388aaf5625b347b6fa6aac07a04f77e2af44
Author: Author Name <hoge@fuga.com>
Date: Tue Nov 14 10:21:37 2017 +0900
make about html
commit 5db9f564615939a50b2771e247265a99d506e744
Author: Author Name <hoge@fuga.com>
Date: Tue Nov 14 10:21:04 2017 +0900
add text
commit fc7d5b939fff35713d8554319f135c0392690615 (master, develop)
Author: Author Name <hoge@fuga.com>
Date: Tue Nov 14 10:12:50 2017 +0900
first commit
対応方法
流れ
feature/about
ブランチを作成するcherry-pick
を使用して、feature/fix01
ブランチに間違ってコミットした変更をfeature/about
ブランチへ適用するfeature/fix01
ブランチに間違ってコミットした変更をgit reset
で削除
実際のコマンド
# developブランチからfeature/aboutブランチを作成
git checkout develop
git checkout -b feature/about
# cherry-pickを使用してfeature/aboutブランチへ変更を適用
git cherry-pick 9f42388aaf5625b347b6fa6aac07a04f77e2af44
git cherry-pick ed3a060acd612c6242fdf91e43b86c33ff07a9d2
# feature/fix01から不要なコミットを削除
git checkout feature/fix01
# 先頭から2つが不要なコミットなので2回実行
git reset --hard HEAD^
git reset --hard HEAD^