git rebase:传递多个策略选项
使用git rebase:传递多个策略选项,git,Git,使用git-rebase,可以使用-X或-strategy-option=传递合并策略选项。但是,从手册页不清楚是否可以传递多个选项(或者后续选项是否替换以前的选项),如果可以,正确的语法是-X还是-X-X。运行git rebase--verbose-m-X-X不会产生错误,但即使启用了verbose输出,也没有迹象表明是应用了这两个选项还是仅应用了最后一个。使用了opt1、opt2、opt3逗号分隔语法 不适用于合并/重设基础中的策略选项 对于这些,需要多个-Xopt1-Xopt2 但我只能找
git-rebase
,可以使用-X
或-strategy-option=
传递合并策略选项。但是,从手册页不清楚是否可以传递多个选项(或者后续选项是否替换以前的选项),如果可以,正确的语法是-X
还是-X-X
。运行git rebase--verbose-m-X-X不会产生错误,但即使启用了verbose输出,也没有迹象表明是应用了这两个选项还是仅应用了最后一个。使用了opt1、opt2、opt3
逗号分隔语法
不适用于合并/重设基础中的策略选项
对于这些,需要多个-Xopt1-Xopt2
但我只能找到一个测试这种语法的实例,对于失败的情况:
所以在实践中,我不确定这是否会被使用
引入-X
的策略一次只测试一个策略选项
我看到了一个例子,但是使用git cherry pick:
D:\git\git\t>grep-E“-X.*?-X”*.sh
t3418-rebase-continue.sh:测试必须失败git-rebase-i-s-funcy-Xopt-Xfoo主主题
t3510-cherry-pick-sequence.sh:test_expect_code 128 git cherry pick-s-m$mainline--strategy=recursive-X patience-X ours initial..anotherpick&&
看,这是什么
感谢您指出,为不同的git子命令提供多个
-X
选项时使用了不同的语法。@user001我找到了一个使用多个策略选项的示例:请参阅我编辑的答案。感谢您的更新--看起来可以在不重写的情况下使用多个策略选项。您是否清楚是什么导致cherry pick命令以状态128退出,这似乎表明出现了意外错误()?@user001不确定。我在无效文件描述符()的情况下看到过它,或者是一种避免-1:的方法。或作为无效值的信号方式:
D:\git\git\t>grep -E "\-X" *.sh|grep "\,"
t4047-diff-dirstat.sh: test_must_fail git show -X=20,cumulative
t4047-diff-dirstat.sh:test_expect_success 'explicit defaults: -Xchanges,noncumulative,3' '
t4047-diff-dirstat.sh: git diff -Xchanges,noncumulative,3 HEAD^..HEAD >actual_diff_dirstat &&
test_must_fail git rebase -i -s funny -Xopt -Xfoo master topic
test_expect_code 128 git cherry-pick -s -m $mainline --strategy=recursive -X patience -X ours initial..anotherpick