执行`git merge`命令时有没有办法绕过post-merge git hook
Is there a way to bypass post-merge git hook when executing `git merge` command
我配置了 post-merge 挂钩,以便(半手动)与另一个版本控制系统集成。但是有时我想避免来自 运行 的钩子有没有办法绕过 git merge
?
我知道 git commit
有 --no-verify
命令行参数。这种解决方案非常适合我的用例,但似乎 --no-verify
不适用于 git commit
命令。
没有禁用 运行ing post-合并挂钩的标志,但是您可以轻松地装配自己的 post-合并挂钩(您可以完全控制它,因为它是在您自己的存储库中)以遵守环境变量。例如,shell 脚本可能以:
开头
#! /bin/sh
warn() {
echo "warning: " 1>&2
}
case ${SKIP_POST_MERGE_HOOK:-no} in
yes) exit 0;;
no) ;;
*) warn "mystery value ${SKIP_POST_MERGE_HOOK} for SKIP_POST_MERGE_HOOK";;
esac
... rest of code as usual ...
现在,如果您想 运行 git merge
但绕过钩子(或 运行 类似 git pull
方便脚本的东西 运行s git merge
为您),只需将持续时间设置为 SKIP_POST_MERGE_HOOK=yes
:
$ SKIP_POST_MERGE_HOOK=yes git merge ...
对于那些因为 git merge --no-verify --continue
不能一起工作而来到这里的人 - 你可以暂时禁用挂钩以进行合并 - 例如对于我当前的 React 项目,我刚刚从我的 package.json
中删除了这部分 - 因为文件没有暂存,所以它不会进入合并提交
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{js,ts,tsx}": [
"eslint --fix --rule '@typescript-eslint/no-non-null-assertion: error'",
"prettier --write"
],
"*.css": [
"stylelint --fix",
"prettier --write"
],
"*.{json,yml,md,eslintrc,stylelintrc,babelrc}": [
"prettier --write"
]
},
我配置了 post-merge 挂钩,以便(半手动)与另一个版本控制系统集成。但是有时我想避免来自 运行 的钩子有没有办法绕过 git merge
?
我知道 git commit
有 --no-verify
命令行参数。这种解决方案非常适合我的用例,但似乎 --no-verify
不适用于 git commit
命令。
没有禁用 运行ing post-合并挂钩的标志,但是您可以轻松地装配自己的 post-合并挂钩(您可以完全控制它,因为它是在您自己的存储库中)以遵守环境变量。例如,shell 脚本可能以:
开头#! /bin/sh
warn() {
echo "warning: " 1>&2
}
case ${SKIP_POST_MERGE_HOOK:-no} in
yes) exit 0;;
no) ;;
*) warn "mystery value ${SKIP_POST_MERGE_HOOK} for SKIP_POST_MERGE_HOOK";;
esac
... rest of code as usual ...
现在,如果您想 运行 git merge
但绕过钩子(或 运行 类似 git pull
方便脚本的东西 运行s git merge
为您),只需将持续时间设置为 SKIP_POST_MERGE_HOOK=yes
:
$ SKIP_POST_MERGE_HOOK=yes git merge ...
对于那些因为 git merge --no-verify --continue
不能一起工作而来到这里的人 - 你可以暂时禁用挂钩以进行合并 - 例如对于我当前的 React 项目,我刚刚从我的 package.json
中删除了这部分 - 因为文件没有暂存,所以它不会进入合并提交
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{js,ts,tsx}": [
"eslint --fix --rule '@typescript-eslint/no-non-null-assertion: error'",
"prettier --write"
],
"*.css": [
"stylelint --fix",
"prettier --write"
],
"*.{json,yml,md,eslintrc,stylelintrc,babelrc}": [
"prettier --write"
]
},