Github使って初めて開発練習!
完了したブランチ(create-database)をマージしないまま、
そのブランチ上で次の実装(indexビューの作成)を行ってしまった。。
かつ、コミット→pushまでしてしまい愕然。。
そこで!
きちんとした手順、ブランチになるよう修正した方法のMEMO
pushしてしまったコミットを取り消す
STEP 1
create-databaseブランチ上で出してしまった、関係ないビュー作成のコミットを削除
git reset --soft HEAD^
ターミナルでこのコマンドを打つことで、直前のコミットを打ち消すことができる!
--soft
とすることで変更した内容自体は取り消さず残したままになる。
--hard
にすると変更した内容も取り消すことになり、編集した内容が飛ぶことに・・
✔︎ git log
でコミットの履歴を確認して、不要なコミットの分上記コマンドを繰り返す。
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ブランチに追加されたよ!
参考
Qiita
http://vatscy.github.io/blog/2014/03/30/git-branch-stash/
https://reasonable-code.com/git-push-cancel/