当前位置: 首页 > 知识库问答 >
问题:

Git预提交钩子“no error”错误消息

燕砚文
2023-03-14

我在顶部有一个#!/bin/sh,并且肯定在上面使用了chmod+x。但是,这些似乎是针对没有这样的文件或目录错误时的修复。我的错误只是表示没有错误,我无法找出原因。

钩子中的代码:

#!/bin/sh

changes() {
  git diff --name-only --diff-filter=AMDR --cached @~..@
}

if changes | grep -q dirname {
  echo "Test"
}

共有1个答案

闻人景澄
2023-03-14

如这里所示,首先检查脚本是否有最后的换行符。
如果没有换行符,将触发“no error”消息。

同时检查eol样式(行尾):对于那些bash脚本,LF是首选的。

OP compsciman在评论中确认,从2.21切换到Windows2.26的Git解决了这个问题。

 类似资料:
  • 我在顶部有一个,并且在上面使用了。但是,当没有这样的文件或目录错误时,这些似乎是修复的。我的错误只是说,我不知道为什么。 挂钩中的代码:

  • 我刚开始研究Git钩子,但我似乎无法让它们运行。 注意:这是在Windows7电脑上。

  • 如何从Jenkins远程触发构建? 如何配置Git post提交钩子?

  • 如果我们在提交配置清单之前能够发现其中的语法错误将会是个好消息。 检查 Puppet 配置清单的语法可以使用 puppet parser validate 命令: # puppet parser validate /etc/puppet/manifests/site.pp err: Could not parse for environment production: Syntax error a

  • 和其它版本控制系统一样,Git 能在特定的重要动作发生时触发自定义脚本。 有两组这样的钩子:客户端的和服务器端的。 客户端钩子由诸如提交和合并这样的操作所调用,而服务器端钩子作用于诸如接收被推送的提交这样的联网操作。 你可以随心所欲地运用这些钩子。 安装一个钩子 钩子都被存储在 Git 目录下的 hooks 子目录中。 也即绝大部分项目中的 .git/hooks 。 当你用 git init 初始

  • 我正在运行一个subversion服务器、一个TeamCity服务器和一个Youtrack服务器。目前,这些都是连接的,这意味着每当我提交某件事情时,我都会在提交消息上添加一个youtrack问题编号,并且在TeamCity的帮助下,变更集会出现在youtrack中的问题下。我现在试图实现的是阻止所有未与YouTrack中的一个开放问题链接的提交。 我在其他版本控制系统和票证管理系统中也看到过类似