2
2

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 5 years have passed since last update.

【Github】ブランチ切り忘れて作業してしまった時の対処法

Last updated at Posted at 2019-03-19

Github使って初めて開発練習!

完了したブランチ(create-database)をマージしないまま、
そのブランチ上で次の実装(indexビューの作成)を行ってしまった。。
かつ、コミット→pushまでしてしまい愕然。。

そこで!
きちんとした手順、ブランチになるよう修正した方法のMEMO:ok_hand:

pushしてしまったコミットを取り消す

STEP 1

create-databaseブランチ上で出してしまった、関係ないビュー作成のコミットを削除

git reset --soft HEAD^

ターミナルでこのコマンドを打つことで、直前のコミットを打ち消すことができる!
--softとすることで変更した内容自体は取り消さず残したままになる。
--hardにすると変更した内容も取り消すことになり、編集した内容が飛ぶことに・・:warning:

✔︎ git logでコミットの履歴を確認して、不要なコミットの分上記コマンドを繰り返す。
chat-space%20%E2%80%94%20-bash%20%E2%80%94%20204%C3%9762

STEP 2

LGTMが出た段階まで戻せたのでcreate-databaseブランチをmergeする。

STEP 3

新しいブランチを作成し、コミットの変更を引き継ぐ

今のままだとcreate-databaseブランチ上に未コミットの変更が乗っかってる状態。
そこで、まず新しくcreate-index-viewブランチを作成してPR!

こっちのブランチに変更を移すにはどうしたらいい?って時はこのコマンド。
git stash

これで、未コミットの変更履歴を一時退避BOXみたいなものに
一旦退避させることができる。
*スタッシュ機能と呼ぶ

✔︎ git stashコマンドはデフォルトではgit管理しているファイルのみが退避されるので、新規で作成したコミット前のファイルがある場合はstashの対象になりません。
新規作成したファイルもstashに含めたい場合は
git stash -uとしましょう

そしたら、移動先のcreate-index-viewブランチに切り替えて・・・
git stash apply(stashに残る)
git stash pop (applyした後stashから削除する)

これで、一時BOXに移しておいた未コミットの変更履歴が
現在選択されているcreate-index-viewブランチに追加されたよ!:clap:


参考

Qiita
http://vatscy.github.io/blog/2014/03/30/git-branch-stash/
https://reasonable-code.com/git-push-cancel/

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?