小智 22
对我有用的简单方法(无需更改配置文件)是:
git merge main
git add .
git commit --no-verify
git push
这是一个示例,因此您可以明确指定要添加哪些文件并添加提交消息。我在尝试时遇到了与OP相同的问题git merge --continue
。
git版本:2.35.1
小智 19
您可以通过执行以下操作暂时禁用 git hooks:
$ git config core.hooksPath # to see the current value
$ git config core.hooksPath '/dev/null'
$ git merge --continue
$ git config core.hooksPath '/value/you/had/before'
Run Code Online (Sandbox Code Playgroud)
改编自这个有用的答案。
god*_*rry 15
对于那些因为不能一起工作而来到这里的人git merge --no-verify --continue
- 您可以暂时禁用合并的钩子 - 例如,对于我当前的反应项目,我刚刚从我的项目中删除了这部分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"
]
},
Run Code Online (Sandbox Code Playgroud)
没有禁止运行合并后挂钩的标志,但您可以轻松地装配自己的合并后挂钩(您完全控制它,因为它在您自己的存储库中)以服从环境变量。例如,shell 脚本可能以以下内容开头:
#! /bin/sh
warn() {
echo "warning: $1" 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 ...
Run Code Online (Sandbox Code Playgroud)
现在,如果您想运行git merge
但绕过钩子(或运行类似为您git pull
运行的便利脚本之类的东西git merge
),只需设置SKIP_POST_MERGE_HOOK=yes
持续时间:
$ SKIP_POST_MERGE_HOOK=yes git merge ...
Run Code Online (Sandbox Code Playgroud)