git rebase:传递多个策略选项

时间:2019-06-28 02:35:45

标签: git

使用git rebase,可以使用-X <strategy-option>--strategy-option=<strategy-option>传递合并策略选项。从手册页尚不清楚,是否可以传递多个选项(或后续选项是否替换先前的选项),以及是否可以传递正确的语法为-X <opt1,opt2>-X <opt1> -X <opt2>。运行git rebase --verbose -m -X <opt1> -X <opt2> <upstream>不会产生错误,但是即使启用了详细输出,也没有指示是同时应用了两个选项还是仅应用了最后一个选项。

1 个答案:

答案 0 :(得分:1)

git diff使用opt1,opt2,opt3逗号分隔的语法

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 &&

不适用于合并/变基中的策略选项。

对于这些,需要多个-Xopt1 -Xopt2

但是我只能找到一个测试了这种语法的实例,并且在失败的情况下:t3418-rebase-continue.sh

test_must_fail git rebase -i -s funny -Xopt -Xfoo master topic

所以实际上,我不确定是否会使用它。

引入-X的{​​{3}}一次只能使用一个策略选项进行测试。

不过,我看到了一个使用git cherry-pick的示例:

D:\ git \ git \ t> grep -E“ -X。*?-X” * .sh

t3418-rebase-continue.sh:test_must_fail git rebase -i -s有趣-Xopt -Xfoo主主题 t3510-cherry-pick-sequence.sh:test_expect_code 128 git cherry-pick -s -m $ mainline --strategy = recursive -X耐心-X我们的首字母..anotherpick &&

请参见initial commit (Nov 2009, Git v1.7.0-rc0)t3510-cherry-pick-sequence.sh

test_expect_code 128 git cherry-pick -s -m $mainline --strategy=recursive -X patience -X ours initial..anotherpick