由于--no-verify
不是有效选项,如何使用--no-verify
进行git cherry-pick --continue
。CCD_ 4不起作用,因为这两个参数是互斥的。
如果您的cherry-pick
(不带--no-commit
(发生合并冲突,并且您希望在解决冲突后使用--continue
,则可以使用临时禁用当前回购的git挂钩
$ git config core.hooksPath # Print current setting
$ git config core.hooksPath '/dev/null/'
完成后,根据之前是否设置了core.hooksPath
,您可以恢复以前的设置:
$ git config core.hooksPath '/some/previous/path'
或者再次取消设置:
$ git config --unset core.hooksPath
--no-verify
是commit
命令的选项,而不是cherry-pick
。
然而,可以为cherry-pick
使用--no-commit
标志,那么git commit --no-verify
就可以完成樱桃采摘。
进一步扩展@teejay bruno方法,我所做的是:
pre-commit run
git -c core.hooksPath=/dev/null cherry-pick --continue
这样,即使某些项目失败,我仍然可以运行验证,并且在不更改全局配置的情况下进行挑选
如果所有冲突都已解决,则不需要git cherry-pick --continue
仅git commit --no-verify
。然后这个过程就完成了。
为了扩展@mickdekkers的答案,我在~/.bashrc
-中添加了以下函数
git() {
if [[ $@ == *"--no-verify"* ]];
then
command git -c core.hooksPath=/dev/null "$@ | sed 's/--no-verify//'";
else
command git "$@";
fi;
}
这在任何时候使用--no-verify
标志时都将hookpath设置为null
。
另一种可能的解决方法是在提交之前隐藏/取消隐藏,因为这将停止樱桃采摘操作,以便可以使用通常的提交命令:
git stash
git stash pop
git add -u
git status
git commit -n
好问题。为了避免接触git-config或做复杂的事情,一个技巧是注释您的预提交文件,然后在樱桃采摘完成时取消注释。
我只是在进行gitcherry pick时遇到了一些git冲突。
在修复和git添加所需的更改后,运行git commit -m "xxx" --no-verify
而不是git cherry-pick --continue
解析它。