Git钩子在源树上不起作用

798qvoo8  于 2023-03-06  发布在  Git
关注(0)|答案(8)|浏览(201)

通过终端一切正常工作,但在源树不工作
这是我的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
r8xiu3jd

r8xiu3jd1#

对我来说,我必须通过命令行打开源树

open /Applications/Sourcetree.app

从此处(SourceTree-Hook-failing-because-paths-don-t-seem-to-be-set

pgx2nnw8

pgx2nnw82#

通过添加export PATH=/usr/local/bin:$PATH修复
源树issue

wfypjpf4

wfypjpf43#

2022年的解决方案,如果您在MacOS上使用nvmhusky@>=5
只需在终端中运行以下命令:

echo 'export NVM_DIR="$HOME/.nvm"\n[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' > ~/.huskyrc

请评价该解决方案是否能帮助您提高绩效。

nbysray5

nbysray54#

通过执行git config --全局核心.hooksPath '~/.githooks'命令修复
我把core.hooksPath设置到了错误的目录。正在用git config重置它--全局core.hooksPath '~/.githooks'

qvtsj1bj

qvtsj1bj5#

~/.bash_profile~/.zshrc中添加export PATH=/usr/local/bin:$PATH

只需进入Sourcetree偏好设置,在git设置下使用系统git,而不是嵌入式git。

polhcujo

polhcujo6#

这在OSX上有效,更新~/.bash_profile为

export PATH="/usr/local/bin:$PATH"
lg40wkob

lg40wkob7#

在我的情况下,导出路径不起作用。我不得不重新安装husky并重新启动sourcetree。然后一切又都正常了。

jdzmm42g

jdzmm42g8#

安装命令行工具,现在可以从终端调用以下命令:
斯特雷
通过命令行打开源树。
如果Git Hooks可以在你的终端中使用,它将出现在源树中。

相关问题