1. emincoring

    Posted

    emincoring
Changes in title
+【Github】ブランチ切り忘れて作業してしまった時の対処法
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,49 @@
+Github使って初めて開発練習!
+
+完了したブランチ(create-database)をマージしないまま、
+そのブランチ上で次の実装(indexビューの作成)を行ってしまった。。
+かつ、コミット→pushまでしてしまい愕然。。
+
+そこで!
+きちんとした手順、ブランチになるよう修正した方法のMEMO:ok_hand:
+
+# pushしてしまったコミットを取り消す
+### STEP 1
+######create-databaseブランチ上で出してしまった、関係ないビュー作成のコミットを削除
+
+
+`git reset --soft HEAD^`
+
+ターミナルでこのコマンドを打つことで、直前のコミットを打ち消すことができる!
+`--soft`とすることで変更した内容自体は取り消さず残したままになる。
+`--hard`にすると変更した内容も取り消すことになり、編集した内容が飛ぶことに・・:warning:
+
+✔︎ `git log`でコミットの履歴を確認して、不要なコミットの分上記コマンドを繰り返す。
+<img src="https://www.evernote.com/l/AFI7wqWtTeZInbZvSi6TsMWLedvQPUajciwB/image.png" alt="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みたいなものに一旦退避させることができる。
+*スタッシュ機能と呼ぶ
+
+そしたら、移動先のcreate-index-viewブランチに切り替えて・・・
+`git stash apply`
+
+これで、一時BOXに移しておいた未コミットの変更履歴が
+現在選択されているcreate-index-viewブランチに追加されたよ!:clap:
+
+***
+##### 参考
+http://vatscy.github.io/blog/2014/03/30/git-branch-stash/
+https://reasonable-code.com/git-push-cancel/