У меня есть сценарий для блокировки неразрешенных конфликтов слияния, которые нужно выдвинуть:
#!/bin/bash
echo "pre-receive HOOK: $old_sha $new_sha"
while read old_sha new_sha refname
do
if git diff "$old_sha" "$new_sha" | grep -qE '^\+(<<<<<<<|>>>>>>>)'; then
echo "Saw a conflict marker in $(basename "$refname")."
git diff "$old_sha" "$new_sha" | grep -nE '^\+(<<<<<<<|>>>>>>>)'
exit 1
fi
done
exit 0
Но когда нажата новая ветка, я получаю следующее сообщение об ошибке:
fatal: bad object 000000000000000000000000000000000000000000
Полный вывод:
Counting objects: 77, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (58/58), done.
Writing objects: 100% (77/77), 11.27 KiB | 5.63 MiB/s, done.
Total 77 (delta 52), reused 14 (delta 6)
remote: pre-receive HOOK
remote: fatal: bad object 0000000000000000000000000000000000000000
To https://tracker.feel-safe.net/gitdev/main.git
* [new branch] 296-ToS-component -> xxx
И, как вы видите, зафиксированные изменения зафиксированы.
Как обрабатывать новые ветви в pre-receive
hook?
Должен ли я вместо этого создать update
hook?