チームで問題が発生しており、コードに TODO がある場合に git push を拒否する方法または git コマンドがあるかどうかを確認することにしました。何か案は?前もって感謝します。
質問する
3198 次
2 に答える
18
github で pre-receive フックを使用できないため、代わりにクライアント側で pre-commit フックを使用しています: http://git-scm.com/book/en/Customizing-Git-Git-Hooks#Client-Side-フック
事前コミット スクリプト ( http://mark-story.com/posts/view/using-git-commit-hooks-to-prevent-stupid-mistakesに基づく) は次のようになります。
#!/bin/sh
for FILE in `git diff-index -p -M --name-status HEAD -- | cut -c3-` ; do
if [ "grep 'TODO' $FILE" ]
then
echo $FILE ' contains TODO'
exit 1
fi
done
exit
このスクリプトはバージョン管理システムの下にあり、.git/hooks にシンボリック リンクを作成します。
助けてくれてありがとう :)
編集: if ステートメントの grep 動作のため、スクリプトを編集する必要がありました:
#!/bin/sh
for FILE in `git diff --name-only --cached`; do
grep 'TODO' $FILE 2>&1 >/dev/null
if [ $? -eq 0 ]; then
echo $FILE ' contains TODO'
exit 1
fi
done
exit
于 2012-12-17T10:33:26.413 に答える
4
サーバーでフックを事前受信し、ファイルをgrepしてプッシュを中止します:)
pre-receive フックの詳細については、http: //git-scm.com/book/en/Customizing-Git-Git-Hooks#Server-Side-Hooksを参照してください。
于 2012-12-14T11:11:51.400 に答える