git-delete-squashed
from squash mergeしたbranchを削除する
github
#WIP
https://ryym.tokyo/posts/delete-squash-merged-branch/
解説
戦略
fooとmasterの分岐点となるコミット (共通の祖先) を探す
git merge-base
その祖先からfooの HEAD までを squash した一時コミットを作る
git commit-tree
その一時コミットと内容的に同一なコミットをmasterの履歴から探す
つまり、squashしたcommitと同一のものを仮に作成し、比較して判定する
やってみた
https://github.com/mrsekut/dotfiles/pull/2
いくつか未検証な部分がある
まず、nixのgit aliasに引数を与える
これが適当すぎる
何も理解してないが動いていない
この辺読むか
https://stackoverflow.com/questions/3321492/git-alias-with-positional-parameters
https://unix.stackexchange.com/questions/144514/add-arguments-to-bash-c
次に、本質的な問題が残っている
まだrebase mergeしてないやつも消える
あ、これ、squash mergeか、rebase mergeかで、考えること代わるのか?
この辺をちゃんと確認しないといけないmrsekut.icon