Próbuję napisać skrypt tkaniny, który robi git commit; jednak jeśli nie ma nic do zatwierdzenia, git kończy pracę ze statusem 1. Skrypt wdrażania traktuje to jako niepowodzenie i kończy pracę. Chcę wykrywać rzeczywiste niepowodzenia w zatwierdzaniu, więc nie mogę po prostu dać tkaninie koca ignorowania git commitbłędów. Jak mogę pozwolić na ignorowanie błędów zatwierdzania pustego, aby wdrażanie mogło być kontynuowane, ale nadal przechwytywało błędy spowodowane niepowodzeniem prawdziwego zatwierdzenia?
def commit():
local("git add -p && git commit")
git diffjest to polecenie „porcelain”, którego nie należy używać do tworzenia skryptów. To, czego najprawdopodobniej chcesz, togit diff-index --quiet HEAD || git commit -m 'bla'. Zobacz także tę odpowiedź .