EnsekiTT Blog

EnsekiTTが書くブログです。

Gitでブランチを間違えて作業をしちゃった時、正しいブランチに作業を反映する話

つまりどうやるの?

gitで管理しているとブランチを間違えたりブランチの切り替えをしていない状態で開発をしてしまったりする。
そんなときには、git stashを使って作成してしまった変更を退避させて、ブランチを切り替えてから退避した変更を適用する。
f:id:ensekitt:20180507022538j:plain

git stashとは?

stashはこっそり隠すとかそういう単語で、Gitではコミットしていない変更を退避して、変更していない頃のワーキングディレクトリに戻すために使う。

git stashのワークフロー

間違えたブランチ上の作業

# 作業
git add -A
git stash save
git stash list
stash@{0}: WIP on wrong_branch: 6a962fa hogehoge
git stash branch correct_branch #正しいブランチ名をつけて新しく作る

正しいbranch上での作業

git add -A
git commit -m "正しいブランチで作業したよ"
# この後はマージするなりプルリク送るなり。
git checkout master
git merge correct_branch
git push

git stashの覚えておきたいコマンド

git stash list # 退避した変更のリストを表示する
git stash show [<stash>] # 退避した変更の中身を確認する
git stash drop [<stash>] # 退避した変更(指定する場合はStash名を最後につける)を削除する
git stash pop [<stash>] # 退避した変更を適用してstashを削除する
git stash apply [<stash>] # 退避した変更を適用する
git stash branch <branchname> [<stash>] # <branchname>を指定して新しいブランチを作成してstashを適用する
git stash save # 変更を退避する(stashを作成する)
git stash clear # 退避を全て削除する
クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。