1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ブランチを切り忘れてpushしてしまった際の対処法

Posted at

今回はGithubでブランチを切り忘れて、リモートマスターにpushしてしまった時の対処法を書きます。

今回のゴール

・マスターブランチを元に戻す
・元に戻した段階でnewブランチを作成。
・元に戻すまでの内容をnewブランチに載せて、pushする
・プルリクエストを行う

はじめに

ローカル上でブランチを切り忘れて、リモートブランチにプッシュしてしまうことはたびたびあると思います。しかし、正しい対処法を講じれば全く問題ないことです。

手順の確認

以下の4ステップで覚えておくと良いでしょう。
1.githubデスクトップで revert する
2.ブランチを切る
3.git cherry-pick でリバートを復元する
4.コミット、プルリクエスト

1.githubデスクトップでrevertする

Github上でリバートする方法はHistoryの中の元に戻したいコミットを選択し、右クリックでRevertChanges in Commitを選択します。↓
revert.png

revertしたコミットはRevert"〜"という形で新たにヒストリーに追加されます。
revert後.png
リバートした内容はHistoryに残るため、後の作業で復活させることができます。
また、この作業はでローカルのマスターブランチとリモートのマスターブランチ両方に作業が反映されますので、リモートのマスターブランチ上でも"データベース設計の構築"がrevertされなくなっております。
ここまでで一度、テキストエディタでコードが元に戻っているかを確認しましょう。

2.ブランチを切る

Git hubでブランチを切ります。GitHub desktopsの上部メニュー:current branchを選択し、new branchでブランチを作成します。
ブランチが作成されましたので、当該ブランチにrevertした内容を復元してプルリクエストを行います。

3.git cherry-pick でリバートを復元する

GitHub desktopのヒストリーで元に戻したいcommitで右クリックして Copy SHA を選択します。この操作ではヒストリーのリバートした内容の番号を取得します。貼り付ける場合はcommand+Vで貼り付けできます。↓
SHA.png

ターミナル上で、対象となるアプリケーションのディレクトリにいることを確認し、revertしたcommitを復元させるコマンドを入力します。
git cherry-pick (command+Vで取得した番号を貼り付け)↓
git charry-pick.png
このコマンドを実行すると、リバートした内容がGit hub desktopのcommit欄に戻ります。この内容をcommitし、pushするとnewブランチでプルリクエストが可能です。↓
git charry-pick 済.png

以上で、masterブランチを元に戻し、newブランチを作成してプルリクエストする作業は終了です。

総括

今回の作業は、commitの内容を消す・復元することを行いましたので、小まめにcommitを行っていることが、前提となっております。
そのため、小まめにGitHubにてcommitを行うことを心がけましょう。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?