AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

git drune なんぞ存在しない

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

qiita.com

おわり! 「drune ってなんだよ!」ってなって一人でモヤッとして自分の頬を張り続けていた。