ローカルのブランチ状況をリモートに一致させるコマンドを忘れてむにゃもにょむにゃああ!って気持ち悪くなっている、なんだっけ drune みたいなやつ
— donbulinux (@donburenew) April 25, 2023
git drune
とは……。
選ばれたのは prune でした
まあ prune ですね。
どういう状況かというと、 git flow で開発しているリポジトリに PR 送ろうとしていたのですが、 feature ブランチを develop ではなく main から作成してしまっており。
「いっけなーい、 rebase で解決☆」と思ったら衝突しまくってどうにもならなかったので、 git rebase --quit
した所、残骸が集結した謎のブランチが生まれてキレた、という感じです。
せっかくなので、この状態からリモートに合わせることで掃除を実施する事にしました。 ローカルブランチ消えてもいいし、作業中のファイルも消えてオッケー、だったので。
# リモートの origin に fetch する git fetch origin # ローカルブランチの main を強制的に origin/main の内容で同期 (書き換え) する git reset --hard origin/main # リモートとローカルのブランチを同期する (いわゆるリモート追跡ブランチが無いのであれば削除する) git fetch --prune # dangling (宙ぶらりん/どこからも参照されていない git オブジェクト) の確認 git fsck # dangling がめっちゃあったので、即時削除 git gc --prune=now
おわり! 「drune ってなんだよ!」ってなって一人でモヤッとして自分の頬を張り続けていた。