Git 用'--深度';选项
Git 用'--深度';选项,git,git-submodules,Git,Git Submodules,git子模块更新支持本节所述的--depth选项 但我们仍然无法轻松确定深度值,这可能会使git无法找到子模块的预期版本 是否有一个真正的解决方案来浅层更新子模块 因此,我认为确切的深度仍然是一个神话,这是唯一必须解决的问题 虽然确实没有“精确深度”,但您仍然可以使用git 2.9.x+(2016年第三季度)记录“深度建议” 参见(2016年5月26日)作者 (于2016年6月20日被合并) 子模块更新:了解-[no-]推荐浅层选项 上游项目可以建议进行浅层克隆 它附带的.gitmodules文
git子模块更新
支持本节所述的--depth
选项
但我们仍然无法轻松确定深度值,这可能会使git无法找到子模块的预期版本
是否有一个真正的解决方案来浅层更新子模块
因此,我认为确切的深度仍然是一个神话,这是唯一必须解决的问题
虽然确实没有“精确深度”,但您仍然可以使用git 2.9.x+(2016年第三季度)记录“深度建议”
参见(2016年5月26日)作者
(于2016年6月20日被合并)
子模块更新
:了解-[no-]推荐浅层
选项
上游项目可以建议进行浅层克隆
它附带的.gitmodules
文件中的一些子模块
有时,子模块的历史记录并不重要
上游项目。为了方便下游用户,允许在
.gitmodules
中使用布尔字段“submodule..shall
”,该字段可用于建议上游用户是否认为历史记录重要
默认情况下,此字段在初始克隆中使用,可以
通过提供--no-recommendant
选项忽略
这样,一个简单的git子模块更新(无其他参数)将使用建议的深度值(如果找到)
另请参见带有以下内容的“”:
或:
git子模块foreach'git config-f.gitmodules子模块。$sm_path.true'
它不应该阻止git获取正确的深度。但如果是,则与中的注释相同:(对于git 1.9.x+)您是否尝试在其中使用git fetch--update shall(通过自定义命令/update maybe:)。我将首先测试git子模块更新--depth
首先:它应该能够更新到正确的深度,具体取决于记录的SHA1。从git 2.0.0开始,--深度必须后跟一个值。因此,我认为确切的深度仍然是一个神话,这是唯一必须解决的问题。感谢@VonCquick 1-liner为所有子模块git子模块| awk'{print$2}'| xargs-n1-I%%bash-c'git config-f.gitmodules子模块添加shallow=true。%%.shallow true'
@g19fantaic谢谢。这确实会派上用场。我已将您的评论包含在答案中,以提高可视性。@G19Fantaic,但我相信使用更安全,不需要依赖awk和其他解析技巧。可能是对的。从未真正使用过foreach,但awk/XARG在我的实用腰带中。为了完整起见,git子模块foreach'git config-f.gitmodules子模块。$sm_path.shallow true'
@g19狂热者,但正如他们所说:''。
git config -f .gitmodules submodule.<name>.shallow true