GIT 批量挂钩 Windows
GIT Hooks on Windows with batch
我正在尝试创建一个 git 挂钩规则,只有在文件 myexamplefile.txt
发生更改时才能提交。
我将文件 .git\hooks\commit-msg
设置为:
for /f "tokens=*" %i in ('git status ^| find /c "AssemblyInfo.cs"') do set x=%i
if %x% (
echo "nice"
exit 0
)
else (
echo "it's bad"
exit 1
)
我在这段代码中工作了一段时间,但我遇到了几个错误,现在我得到:
line 28: syntax error near unexpected token `"tokens=*"'
这个钩子怎么写?重要的是要注意我在 windows 环境中。
任何 git 挂钩将默认在 bash 会话中执行,而不是 CMD 会话。
在 Windows 上,Windows 嵌入的 bash 的 Git 将解释挂钩脚本。
所以尝试在 bash 中重写你的钩子:
#!/bin/bash
f=$(git status | grep "AssemblyInfo.cs")
if [[ "${f}" != "" ]]; then
echo "nice"
exit 0
else
echo "darn it"
exit 1
fi
我正在尝试创建一个 git 挂钩规则,只有在文件 myexamplefile.txt
发生更改时才能提交。
我将文件 .git\hooks\commit-msg
设置为:
for /f "tokens=*" %i in ('git status ^| find /c "AssemblyInfo.cs"') do set x=%i
if %x% (
echo "nice"
exit 0
)
else (
echo "it's bad"
exit 1
)
我在这段代码中工作了一段时间,但我遇到了几个错误,现在我得到:
line 28: syntax error near unexpected token `"tokens=*"'
这个钩子怎么写?重要的是要注意我在 windows 环境中。
任何 git 挂钩将默认在 bash 会话中执行,而不是 CMD 会话。
在 Windows 上,Windows 嵌入的 bash 的 Git 将解释挂钩脚本。
所以尝试在 bash 中重写你的钩子:
#!/bin/bash
f=$(git status | grep "AssemblyInfo.cs")
if [[ "${f}" != "" ]]; then
echo "nice"
exit 0
else
echo "darn it"
exit 1
fi