在文件名超过指定限制时拒绝提交的Git挂钩 [英] Git hook to reject commits where filename is longer than specified limit

查看:6
本文介绍了在文件名超过指定限制时拒绝提交的Git挂钩的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望创建一个客户端预提交GIT挂钩,如果添加到提交中的任何文件的文件名超过指定限制(例如256),则该挂钩将阻止提交。

推荐答案

这里是起点:

#!/bin/sh

# .git/hooks/pre-commit
# Checks that the file about to be committed
# doesn't have a name longer than 256 characters

if test $(git diff --cached --diff-filter=A --name-only | xargs -0 basename | tr -d '
' | wc -c) -gt 256
then
  echo "The staged file name is longer than 256 characters"
  exit 1
fi

exit 0

以下是该命令的详细信息:

  • git diff --cached --diff-filter=A --name-only获取暂存文件的路径
  • xargs -0 basename对于每个路径,提取文件名
  • tr -d ' '删除换行符
  • wc -c返回文件名中的字符数

如果您只有一个暂存文件,则此示例有效。您必须通过在循环中对所有暂存路径运行相同的检查来进一步开发它。

这篇关于在文件名超过指定限制时拒绝提交的Git挂钩的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆