草庐IT

hook_cron

全部标签

Git 'pre-receive' 钩子(Hook)和 'git-clang-format' 脚本可靠地拒绝违反代码风格约定的推送

让我们立即从我已经编写的pre-receive钩子(Hook)的片段开始:#!/bin/sh##format_bold='\033[1m'format_red='\033[31m'format_yellow='\033[33m'format_normal='\033[0m'##format_error="${format_bold}${format_red}%s${format_normal}"format_warning="${format_bold}${format_yellow}%s${format_normal}"##stdout(){format="${1}"shiftpri

git - 从 commit-msg hook 使用 Git 的提交消息清理模式

githelpcommit说如下:--cleanup=Thisoptiondetermineshowthesuppliedcommitmessageshouldbecleanedupbeforecommitting.Thecanbestrip,whitespace,verbatim,ordefault.stripStripleadingandtrailingemptylines,trailingwhitespace,and#commentaryandcollapseconsecutiveemptylines.whitespaceSameasstripexcept#commentaryi

docker - 如何在 docker 容器中运行 cron 作业?

我正在尝试在调用shell脚本的docker容器中运行cronjob。昨天我一直在网上搜索和堆栈溢出,但我真的找不到有效的解决方案。我该怎么做? 最佳答案 您可以将您的crontab复制到一个镜像中,以便从该镜像启动的容器运行该作业。参见RunacronjobwithDocker中的“JulienBoulay”在他的Ekito/docker-cron:Let’screateanewfilecalled"hello-cron"todescribeourjob.#mustbeendedwithanewline"LF"(Unix)andn

docker - 如何在 docker 容器中运行 cron 作业?

我正在尝试在调用shell脚本的docker容器中运行cronjob。昨天我一直在网上搜索和堆栈溢出,但我真的找不到有效的解决方案。我该怎么做? 最佳答案 您可以将您的crontab复制到一个镜像中,以便从该镜像启动的容器运行该作业。参见RunacronjobwithDocker中的“JulienBoulay”在他的Ekito/docker-cron:Let’screateanewfilecalled"hello-cron"todescribeourjob.#mustbeendedwithanewline"LF"(Unix)andn

python - git 无法将 python 脚本作为钩子(Hook)执行

我在python中创建了一个小的pre-commit钩子(Hook)。这个钩子(Hook)在Linux下就像一个魅力,但在Windows上它一直告诉我:error:cannotspawn.git/hooks/pre-commit:Nosuchfileordirectory我知道这里有关于同一问题的类似问题,结论似乎是shebang。我的脚本在第一行有这个:#!F:\PortableApps\PortablePython3.2\App\python.exe同样有趣的是,通过编写.git/hooks/pre-commit来执行脚本效果很好,但是一旦我尝试提交,git就会吐出​​上面的消息。

git - 如何在 git 上手动运行 hook post-receive?

我已经通过Git将一个网站推送到我的远程服务器但是出现了错误cannotrunpost-receive:Nosuchfileordirectory所以这些东西在服务器上,只是没有部署到我的/public文件夹。但是我确实有一个接收后文件,所以我不确定为什么找不到它。现在我认为我需要做的就是手动运行这个接收后Hook来进行checkout,尽管我不知道如何... 最佳答案 钩子(Hook)是一个可执行的shell脚本。如果您需要手动运行它,您可以从命令行执行它,尽管如果您的存储库有多个头(即您使用分支),构建预期的stdin输入会有些

git - 无法从 Git 接收后 Hook 中检测到分支

我在远程仓库上设置了一个postreceivehooksetup,它试图确定传入推送的分支名称,如下所示:$branch=`gitrev-parse--abbrev-refHEAD`不过,我发现无论我从$branch变量中推送哪个分支,都会设置为“master”。有什么想法吗? 最佳答案 post-receivehook获取与pre-receive相同的数据,但不是作为参数,而是来自标准输入。为所有引用发送以下内容:oldRev(空格)newRev(空格)refName(换行)您可以使用此bash脚本解析出ref名称:whilere

用于 merge 冲突的 Git 钩子(Hook)

是否有可用于merge冲突的git钩子(Hook)?在gitmerge失败后,如果能够编写一个脚本来打开$EDITOR中所有有冲突的文件,那就太好了。不幸的是,如果存在冲突,post-mergeHook不会运行,而且根据我在githooks手册页中看到的内容,没有其他适用的Hook。我想知道我是否遗漏了什么,或者除了将“gitmerge”别名化为一个函数或类似的东西之外,是否还有其他替代方法。谢谢,克里斯 最佳答案 正如CharlesBailey所建议的那样,最好的方法是自定义mergetool。使用thisguide,我想到了这种

git - 如何在 git 预提交 Hook 中将文件添加到索引

我四处寻找重复项,虽然其中一些具有相似的标题,但我没有发现任何人遇到与我相同的问题,所以这里开始。我编写了一个在pre-commit上运行的脚本并使用gitstatus--porcelain的输出编译我的项目中已更改的任何LESS文件。这部分工作正常。但我希望.css文件包含在当前提交中。所以除了运行编译器,我的脚本还运行gitadd.这就是事情变得棘手的地方。文件被添加到索引中,但它不是当前提交的索引。所以如果我修改style.less,然后运行​​gitcommit-a(或手动gitaddstyle.less)编译器应生成style.css和style.min.css并将它们添加到

git - 跨平台 git 钩子(Hook)

您如何跨各种平台(例如,*nix和windows)管理git预/后提交Hook?针对此场景推荐的最佳做法是什么? 最佳答案 git钩子(Hook)实际上与任何shell脚本没有什么不同,因为保持它们“跨平台”的最佳实践同样适用。细微差别在于,您也可能将Windows*nix仿真层作为这些Hook的主要用户,并且与大多数实际的Unix环境相比,这些可能相对较弱。我刚刚将一个提交后Hook(并编写了一个提交前Hook)移植到默认的GitforWindows,它使用MINGW32。自上一版本对可用的脚本环境做出一些假设后,我必须做出一些更