当代码中有TODO时,如何禁用git推送?

当代码中有TODO时,如何禁用git推送?,git,push,todo,Git,Push,Todo,我们的团队中有一个问题,我们决定检查是否有方法或git命令在代码中有TODO的地方拒绝git push。 有什么想法吗? 提前感谢。在服务器上预接收钩子,grep文件并中止推送:) 有关预接收挂钩的更多信息,请参见此处:服务器上的预接收挂钩,grep文件并中止推送:) 有关预接收钩子的更多信息可以在此处找到:无法在github中使用预接收钩子,因此我们在客户端使用预提交钩子: 我们的预提交脚本(基于)如下所示: #!/bin/sh for FILE in `git diff-index -p

我们的团队中有一个问题,我们决定检查是否有方法或git命令在代码中有TODO的地方拒绝git push。 有什么想法吗?
提前感谢。

在服务器上预接收钩子,grep文件并中止推送:)


有关预接收挂钩的更多信息,请参见此处:

服务器上的预接收挂钩,grep文件并中止推送:)


有关预接收钩子的更多信息可以在此处找到:

无法在github中使用预接收钩子,因此我们在客户端使用预提交钩子:

我们的预提交脚本(基于)如下所示:

#!/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

无法在github中使用预接收挂钩,因此我们在客户端使用预提交挂钩:

我们的预提交脚本(基于)如下所示:

#!/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

关于在github中工作,在哪里可以阅读到任何想法或链接?我们的项目托管在github上,我只看到post接收钩子:?当然,我们可以使用客户端钩子(比如预提交钩子),但是我们需要在所有机器中创建它。感谢您的帮助:)在github工作时,您有什么想法或链接可以在哪里阅读?我们的项目托管在github上,我只看到post接收钩子:?当然,我们可以使用客户端钩子(比如预提交钩子),但是我们需要在所有机器中创建它。感谢您的帮助:)创建文件后不要忘记
chmod+x.git/hooks/pre-commit
创建文件后不要忘记
chmod+x.git/hooks/pre-commit