How to execute a command on git am/rebase/cherry pick --abort ?
- From
- Konstantin Kharlamov <hi-angel@yandex.ru>
- Date
- Jan 18, 2024, 12:53 UTC
- Message-ID
- <d66ef46827fc7391bd74ece943afa2c5245896d6.camel@yandex.ru>
(please keep me CC'ed, I'm not subscribed)
Hello!
There's a well-known problem of git not fully checking out changes while doing e.g. `git checkout` and similar commands when you have submodules. So e.g. if HEAD changes a submodule commit and you do an interactive rebase to HEAD~2, you may be lucky to find a submodule commit change in `git diff` (because if you don't get lucky, you won't notice that and commit the change to the unrelated HEAD~2).
As a workaround I have a `git submodule update` inside `post-checkout` hook.
Now, the problem is I still often finding myself having the wrong submodule ID, and I tracked down that problem to commands such as `am/rebase/cherry-pick --abort` also not updating the submodule, nor executing `post-checkout`.
I looked through `man githooks` but couldn't find any way to execute a `git submodule update` during these aborts.
Any ideas how to fix these?