I have added something like that in pre-push
hook:
gs0=$(git status) pip-dump gs1=$(git status) if [ "gs0" != "gs1" ] then git commit -m "pip-dump" fi
(this is updating my pip requirements file)
It seems that the push is not pushing the new commit, but the one which the HEAD was on at the beginning of the script.
How to fix that?
You can't: the push
command figures out which commits to push before invoking the hook, and pushes that if the hook exits 0.
I see three options:
My personal preference would be the first of these. A pre-push hook is meant as a "verify that this push is OK" operation, not a "change this push to mean some other different push" operation. So that means you're not working against the "intent" of the software. Use the pre-push hook as a verifier; and if you want a script that invokes git push
after automatically adding a pip-dump
commit if needed, write that as a script, using a different name, such as dump-and-push
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With