git 你如何用“--no-verify”来“挑选-`continue”呢?

55ooxyrt  于 2022-11-20  发布在  Git
关注(0)|答案(4)|浏览(214)

如何将git cherry-pick --continue--no-verify组合使用,因为--no-verify不是有效选项。git cherry-pick --no-commit --continue不起作用,因为这两个参数互斥。

h9a6wy2h

h9a6wy2h1#

为了扩展@mickdekkers的答案,我在~/.bashrc中添加了以下函数--

git() {
    if [[ $@ == *"--no-verify"* ]];
    then
        command git -c core.hooksPath=/dev/null "$@ | sed 's/--no-verify//'";
    else
        command git "$@";
    fi;
}

这会在使用--no-verify标志时将挂接路径设置为null

kkih6yb8

kkih6yb82#

另一种可能的解决方法是在提交之前隐藏/取消隐藏,因为这将停止挑选操作,以便可以使用通常的commit命令:

git stash
git stash pop
git add -u
git status
git commit -n
0pizxfdo

0pizxfdo3#

如果您的cherry-pick(没有--no-commit)有合并冲突,并且您希望在解决冲突后处理--continue,您可以使用以下命令暂时禁用当前repo的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
mznpcxlj

mznpcxlj4#

--no-verifycommit指令的选项,而不是cherry-pick
然而,您 * 可以 * 做的是为您的cherry-pick使用--no-commit标志,然后git commit --no-verify就可以结束挑选了。

相关问题