🎋
ブランチを生やし間違えた時の対応法【git】
記事の概要
PRを送る時、何か作業を始める時に時々ブランチを生やす場所を間違えるので、
直し方をまとめました。
想定読者
- ターミナルでのgit操作を忘れがちな人(私)
- ブランチを生やし間違えて、PRが汚れてしまい慌てている人(私)
本題
🟩case1:ローカルにしかbranchは存在しない、commitもない
ブランチを消して作り直す
// ローカルのブランチを削除する
git branch -d local-branch
🟩case2:branchをリモートにpushした、commitはない
// リモートのブランチを削除する
git push origin --delete remote-branch
上記に加えてgit branch -d
(case1参照)してローカルのbranchを削除するか、
下記のfetch -p
することで、リモートに存在しないbranchをlocalから削除してもいい
// pはprune(取り除く)のp
git fetch -p
🟨case3:branchはリモートにpush済、ローカルではcommitしたが、まだリモートにpushしていない
current-branch
を、wrong-branch
から生やしてしまったが、true-branch
から生やしたい
// stashしてからcase2をやる
// -uで、新規作成したファイルなどもまるっとstashできる
git stash -u
git push origin --delete current-branch
git fetch -p
// 正しくbranchを切り直したら、stashした内容を戻す
git checkout -b current-branch true-branch
git stash apply
// または
git stash pop
🟥case4:branchもcommitもリモートにpushした
current-branch
を、wrong-branch
から生やしてしまったが、true-branch
から生やしたい
// 現在いる場所がcurrent-branchの場合は、current-branchを記載しなくてもよい
git rebase --onto true-branch wrong-branch current-branch: option
git push --force-with-lease origin current-branch
Discussion