🎋

ブランチを生やし間違えた時の対応法【git】

2022/12/15に公開

記事の概要

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