LoginSignup
7
6

"Git SOS: 間違えて別のブランチにpushしてしまったときの対処法"

Posted at

概要

皆さんはコミットしてpushした後に作業ブランチが間違っていることに気づいたことはないでしょうか?(僕はよくこのポカミスをよくします)
そんな時の対処法を備忘録として残しておきます。

私はプログラミング初学者のため間違った記述があれば教えていただけると幸いです。

今回は個人開発ですが、--force オプションを使用してpushする場合は注意が必要です。他の人とブランチを共有している場合、この操作は他の人の作業を上書きする可能性があるので共同作業者と事前に相談してください。

状況

個人開発の際、routes_setupブランチで作業していると思い、コミットしpushPull requestした際、ボタンが出てこず確認してみるとtop_pageブランチで作業してしまっていました。

対処法

ローカルで正しいブランチにコミットを移動する

まず、現在のブランチでの変更を確認しコミットハッシュをメモします。

git log

正しいブランチ(routes_setup)にチェックアウトします。

git checkout routes_setup

routes_setup ブランチにコミットを適用します。

git cherry-pick [コミットハッシュ]
誤ったブランチのコミットを取り消す

誤ったブランチにチェックアウトします。

git checkout top_page

最後のコミットを取り消します。

git reset --hard HEAD~1

変更をリモートに反映する

git push origin top_page --force

正しいブランチの変更をリモートにpushします。

git checkout routes_setup
git push origin routes_setup

この手順で、誤ったブランチのコミットを正しいブランチに移動し、誤ったブランチのコミットを取り消し、リモートの状態を修正することができます。

7
6
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
7
6