Git 钩上 Ubuntu 坏了
Git hook on Ubuntu broken
我最近从某人那里得到了一个 git 钩子,旨在将问题编号添加到所有提交的开头,该问题编号位于分支名称的特定位置。目标是从 feature/#number-issue
中获取 #number
。这是一些信息:
➜ .githooks pwd
/home/luctia/.githooks
➜ .githooks git config --global --list
user.name=luctia
user.email=myemail
core.hookspath=/home/luctia/.githooks
➜ .githooks cat commit-msg
#!/bin/sh
WI=$(git status --branch | grep -iPo "(feature|bug)\/#\d+" | head -1)
WI=$(echo "($WI)" | grep -Po "\d+")
if [[ ! -z "$WI" ]]; then
WI="#$WI"
CM=$(cat "")
if [[ ! $CM == *"$WI "* ]]; then
echo "$WI $CM" > ""
fi
fi
不过这似乎不起作用。该脚本对每个用户都是可执行的,所以这不是问题。我已经尝试从 sh
切换到 bash
,并且通过该编辑我在 repo 中的文件上执行了脚本,它将数字添加到文件的开头,所以我知道它有效.我不确定 git 钩子是否可以执行 bash 文件,但是我使用 sh
或 bash
并没有什么区别,尽管我想知道如果可以 运行 bash 脚本。
我现在正在为我的 IDE 使用 Webstorm,它在那里不起作用,它在 CLI git 上也不起作用。我不知道如何进行。
编辑:我很确定脚本没有被执行。当我将 data > /tmp/hook
添加到脚本时,没有文件出现。不过,我确实必须从 sh
更改为 bash
。
问题是我试图在现有的 .git
目录下对已有的项目进行这项工作。我以为用 --global
标志更改配置就可以了,但显然项目的 .git
目录中的配置没有改变,旧的 hookspath
仍然存在。当我更改它时,脚本开始工作。
我最近从某人那里得到了一个 git 钩子,旨在将问题编号添加到所有提交的开头,该问题编号位于分支名称的特定位置。目标是从 feature/#number-issue
中获取 #number
。这是一些信息:
➜ .githooks pwd
/home/luctia/.githooks
➜ .githooks git config --global --list
user.name=luctia
user.email=myemail
core.hookspath=/home/luctia/.githooks
➜ .githooks cat commit-msg
#!/bin/sh
WI=$(git status --branch | grep -iPo "(feature|bug)\/#\d+" | head -1)
WI=$(echo "($WI)" | grep -Po "\d+")
if [[ ! -z "$WI" ]]; then
WI="#$WI"
CM=$(cat "")
if [[ ! $CM == *"$WI "* ]]; then
echo "$WI $CM" > ""
fi
fi
不过这似乎不起作用。该脚本对每个用户都是可执行的,所以这不是问题。我已经尝试从 sh
切换到 bash
,并且通过该编辑我在 repo 中的文件上执行了脚本,它将数字添加到文件的开头,所以我知道它有效.我不确定 git 钩子是否可以执行 bash 文件,但是我使用 sh
或 bash
并没有什么区别,尽管我想知道如果可以 运行 bash 脚本。
我现在正在为我的 IDE 使用 Webstorm,它在那里不起作用,它在 CLI git 上也不起作用。我不知道如何进行。
编辑:我很确定脚本没有被执行。当我将 data > /tmp/hook
添加到脚本时,没有文件出现。不过,我确实必须从 sh
更改为 bash
。
问题是我试图在现有的 .git
目录下对已有的项目进行这项工作。我以为用 --global
标志更改配置就可以了,但显然项目的 .git
目录中的配置没有改变,旧的 hookspath
仍然存在。当我更改它时,脚本开始工作。