通过终端一切正常工作,但在源树不工作
这是我的pre-commit
钩子
#!/bin/bash
#
# hook script for swiftlint. It will triggered when you make a commit.
#
# If you want to use, type commands in your console.
# $ ln -s ../../pre-commit-swiftlint.sh .git/hooks/pre-commit
# $ chmod +x .git/hooks/pre-commit
LINT=$(which swiftlint)
if [[ -e "${LINT}" ]]; then
echo "SwiftLint Start..."
else
echo "SwiftLint does not exist, download from https://github.com/realm/SwiftLint"
exit 1
fi
RESULT=$($LINT lint --quiet)
if [ "$RESULT" == '' ]; then
printf "\e[32mSwiftLint Finished.\e[39m\n"
else
echo ""
printf "\e[41mSwiftLint Failed.\e[49m Please check below:\n"
while read -r line; do
FILEPATH=$(echo $line | cut -d : -f 1)
L=$(echo $line | cut -d : -f 2)
C=$(echo $line | cut -d : -f 3)
TYPE=$(echo $line | cut -d : -f 4 | cut -c 2-)
MESSAGE=$(echo $line | cut -d : -f 5 | cut -c 2-)
DESCRIPTION=$(echo $line | cut -d : -f 6 | cut -c 2-)
if [ "$TYPE" == 'error' ]; then
printf "\n \e[31m$TYPE\e[39m\n"
else
printf "\n \e[33m$TYPE\e[39m\n"
fi
printf " \e[90m$FILEPATH:$L:$C\e[39m\n"
printf " $MESSAGE - $DESCRIPTION\n"
done <<< "$RESULT"
printf "\nCOMMIT ABORTED. Please fix them before commiting.\n"
exit 1
fi
8条答案
按热度按时间r8xiu3jd1#
对我来说,我必须通过命令行打开源树
从此处(SourceTree-Hook-failing-because-paths-don-t-seem-to-be-set)
pgx2nnw82#
通过添加
export PATH=/usr/local/bin:$PATH
修复源树issue
wfypjpf43#
2022年的解决方案,如果您在MacOS上使用
nvm
和husky@>=5
:只需在终端中运行以下命令:
请评价该解决方案是否能帮助您提高绩效。
nbysray54#
通过执行git config --全局核心.hooksPath '~/.githooks'命令修复
我把core.hooksPath设置到了错误的目录。正在用git config重置它--全局core.hooksPath '~/.githooks'
qvtsj1bj5#
在
~/.bash_profile
或~/.zshrc
中添加export PATH=/usr/local/bin:$PATH
或
只需进入Sourcetree偏好设置,在git设置下使用系统git,而不是嵌入式git。
polhcujo6#
这在OSX上有效,更新~/.bash_profile为
lg40wkob7#
在我的情况下,导出路径不起作用。我不得不重新安装husky并重新启动sourcetree。然后一切又都正常了。
jdzmm42g8#
安装命令行工具,现在可以从终端调用以下命令:
斯特雷
通过命令行打开源树。
如果Git Hooks可以在你的终端中使用,它将出现在源树中。