当未设置push.recurseSubmodules时,git push对子模块的默认行为是什么?

时间:2019-12-07 23:40:32

标签: git

存在子模块时,git-push的行为在四个选项(使用--recurse-submodules)上非常清楚push documentation

  • check:确保已推送父级所需的子模块提交;如果没有,则中止推送
  • on-demand:在推送父提交之前先推送所有需要的子模块提交(如果失败则失败)
  • only:仅推送子模块;不要推父母
  • no(或--no-recurse-submodules):请勿推送子模块。

但是默认值是什么?如果没有--recurse-submodules选项,没有--no-recurse-submodules选项,并且没有设置push.recurseSubmodules配置值,会发生什么?所有的Git版本都一样吗?

附录

文档包含一个提示,默认值为no

  

如果不需要子模块递归,则可以使用值no或使用--no-recurse-submodules 覆盖push.recurseSubmodules配置变量。 (强调)

因此,如果仅在设置no时才需要push.recurseSubmodules选项,则这意味着在{em> unset 取消设置push.recurseSubmodules时,no是默认行为。是吗?

1 个答案:

答案 0 :(得分:0)

我在“ Git submodule push”中提到:

push.recurseSubmodules设置为no时,会保留在推送时忽略子模块的默认行为

这表明no确实是默认行为。