1. emincoring

    No comment

    emincoring
Changes in body
Source | HTML | Preview
@@ -1,50 +1,56 @@
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みたいなものに一旦退避させることができる。
+これで、未コミットの変更履歴を一時退避BOXみたいなものに
+一旦退避させることができる。
*スタッシュ機能と呼ぶ
+✔︎ `git stash`コマンドはデフォルトではgit管理しているファイルのみが退避されるので、新規で作成したコミット前のファイルがある場合はstashの対象になりません。
+新規作成したファイルもstashに含めたい場合は
+`git stash -u`としましょう
+
そしたら、移動先のcreate-index-viewブランチに切り替えて・・・
-`git stash apply`
+`git stash apply`(stashに残る)
+`git stash pop` (applyした後stashから削除する)
これで、一時BOXに移しておいた未コミットの変更履歴が
現在選択されているcreate-index-viewブランチに追加されたよ!:clap:
***
##### 参考
[Qiita](https://qiita.com/muran001/items/dea2bbbaea1260098051#%E3%82%84%E3%82%89%E3%81%8B%E3%81%97%EF%BC%91%EF%BC%92%E3%81%86%E3%81%A3%E3%81%8B%E3%82%8A%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E3%82%92%E5%89%8A%E9%99%A4%E3%81%97%E3%81%9F%E3%81%91%E3%81%A9%E5%85%83%E3%81%AB%E6%88%BB%E3%81%97%E3%81%9F%E3%81%84%E6%99%82 "Gitでやらかした時に使える19個の奥義")
http://vatscy.github.io/blog/2014/03/30/git-branch-stash/
https://reasonable-code.com/git-push-cancel/