1. ホーム
  2. python

[解決済み] エラーなしで何もコミットしない方法は?

2022-10-21 19:09:39

質問

ファブリックスクリプトを書こうとしています。 git commit しかし、コミットするものが何もない場合、git はステータス 1 . deployスクリプトはこれを失敗とみなし、終了します。私は 実際の の失敗を検出したいので、ファブリックに全面的に無視させることはできません。 git commit 失敗を一律に無視することはできません。どうすれば、空のコミット失敗を無視できるようにし、デプロイを継続できるようにしながら、本当のコミットが失敗したときに発生するエラーをキャッチできるでしょうか?

def commit():
    local("git add -p && git commit")

どのように解決するのですか?

git diff の終了コードを確認することで、この状態を事前にキャッチする?

例えば(シェルで)。

git add -A
git diff-index --quiet HEAD || git commit -m 'bla'

編集:修正 git diff コマンドをHolger氏のコメントに従って修正しました。