gitで間違えたブランチに書き込んだ
一度退避させた後、ブランチを切り替えて、退避した変更を引き継ぐというやり方。しょっちゅう使っているコマンドの一つ
今回はmasterブランチに書き込んだとする
変更点を退避する
git stashコマンドを使うと、変更点のみ退避することが可能
$ git stash Saved working directory and index state WIP on master: 1169a810 Merge branch 'route53_20180724_120035' into 'master' $
この時点でgit statusを実行すると変更点がなくなる。
書き込んだmasterブランチはクリアーになる
$ git status On branch master Your branch is up-to-date with 'origin/master'. nothing to commit, working tree clean $
新ブランチを作成
本来作業したかったブランチを作成する
今回はCloudWatchAlarmというブランチとする
ここではcheckout -bオプションで作成と同時にgit branchを行う
$ git checkout -b CloudWatchAlarm Switched to a new branch 'CloudWatchAlarm' $
当然この時点ではgit statusを実施しても変更はない
$ git status On branch CloudWatchAlarm nothing to commit, working tree clean $
ブランチは存在している
$ git branch * CloudWatchAlarm master $
新ブランチに変更点を取り入れる
git stash popコマンドで新ブランチに変更点を取り入れる
$ git stash pop On branch CloudWatchAlarm Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: CloudWatchAlarm.sh no changes added to commit (use "git add" and/or "git commit -a") Dropped refs/stash@{0} (d081148067aad39eb60500c5fbb2a32a4c6c2566) $
まとめ
# 一時退避 git stash # チェックアウト git checkout xxx # 直前のgit stashを取り出す git stash pop