中的--depth 1选项git clone:
--depth 1
git clone
创建一个 浅 克隆,其历史被截断为指定的修订数。浅层存储库有许多限制(您不能克隆或从中获取,也不能从中推送或进入),但如果您只对历史悠久的大型项目的近期历史感兴趣,并且想要作为补丁发送修复。
但是我已经成功地完成了一个浅克隆,提交了一些更改 并将这些更改推 回(裸克隆)原点。
这对我来说很有意义——我的意思是为什么不呢?当克隆的 HEAD 在源中可识别时,我的提交在此之上,似乎没有理由。但手册上另有说明。
我喜欢浅克隆的想法 - 例如drupal核心:当我从7开始时,我不需要知道drupal 4中发生了什么。 - 但我不想在脚上开枪。
那么浅克隆、在其中开发提交、再次拉取以跟上来自源的更新是否安全?
请注意,Git 1.9/2.0(2014 年第一季度)已 删除 该限制。 参见提交 82fba2b,来自Nguy峄卬 Th谩i Ng峄峜 Duy ( pclouds):
pclouds
现在 git 支持从浅克隆或向浅克隆传输数据,这些限制不再适用。
该文档现在显示:
--depth <depth>::
创建一个“浅”克隆,其历史记录被截断为指定的修订数。
这源于像0d7d285、f2c681c和c29a7b8这样的提交,它们支持克隆、带有/来自浅克隆的发送包/接收包。 smart-http 现在也支持浅获取/克隆。
所有详细信息都在“ shallow.c:选择新提交的 8 个步骤.git/shallow”中。
shallow.c
.git/shallow
2016 年 1 月更新:Git 2.8 (Mach 2016) 现在正式记录了获取最小历史的做法。 请参阅Stephen P. Smith (`)的](https://github.com/)[commit 99487cf](https://github.com/git/git/commit/99487cf228ecba869d2f87f1b55f281fdd1342db)、[commit 9cfde9e](https://github.com/git/git/commit/9cfde9ee8f6dc82365f1e977935960f34108076b)(2015 年 12 月 30 日)、[commit 9cfde9e](https://github.com/git/git/commit/9cfde9ee8f6dc82365f1e977935960f34108076b)(2015 年 12 月 30 日)、[commit bac5874](https://github.com/git/git/commit/bac58749bb2cd04720a4d5a1f58ebc428869f9a2)(2015 年 12 月 29 日)和[commit 1de2e44](https://github.com/git/git/commit/1de2e442af45acf52ad45f9ac86d4c19f6475590)(2015 年 12 月 28 日) 。(由[Junio C Hamano 合并](https://github.com/gitster)[——](https://github.com/gitster)在[提交 7e3e80a](https://github.com/git/git/commit/7e3e80a88181c99d33567c05fc865e26f971e954)中,2016 年 1 月 20 日)[](https://github.com/) [gitster`
`)的](https://github.com/)[commit 99487cf](https://github.com/git/git/commit/99487cf228ecba869d2f87f1b55f281fdd1342db)、[commit 9cfde9e](https://github.com/git/git/commit/9cfde9ee8f6dc82365f1e977935960f34108076b)(2015 年 12 月 30 日)、[commit 9cfde9e](https://github.com/git/git/commit/9cfde9ee8f6dc82365f1e977935960f34108076b)(2015 年 12 月 30 日)、[commit bac5874](https://github.com/git/git/commit/bac58749bb2cd04720a4d5a1f58ebc428869f9a2)(2015 年 12 月 29 日)和[commit 1de2e44](https://github.com/git/git/commit/1de2e442af45acf52ad45f9ac86d4c19f6475590)(2015 年 12 月 28 日) 。(由[Junio C Hamano 合并](https://github.com/gitster)[——](https://github.com/gitster)在[提交 7e3e80a](https://github.com/git/git/commit/7e3e80a88181c99d33567c05fc865e26f971e954)中,2016 年 1 月 20 日)[](https://github.com/) [
这是“ Documentation/user- manual.txt”
Documentation/user- manual.txt
A<<def_shallow_clone,shallow clone>>是通过指定git-clone --depth开关创建的。 稍后可以使用git-fetch --depth开关更改深度,或使用 恢复完整历史记录--unshallow。 <<def_shallow_clone,shallow clone>>只要合并基础在最近的历史中,就可以在 a 中合并。 否则,就像合并无关的历史一样,可能会产生巨大的冲突。 此限制可能使此类存储库不适合在基于合并的工作流中使用。
A<<def_shallow_clone,shallow clone>>是通过指定git-clone --depth开关创建的。 稍后可以使用git-fetch --depth开关更改深度,或使用 恢复完整历史记录--unshallow。
<<def_shallow_clone,shallow clone>>
git-clone --depth
git-fetch --depth
--unshallow
<<def_shallow_clone,shallow clone>>只要合并基础在最近的历史中,就可以在 a 中合并。 否则,就像合并无关的历史一样,可能会产生巨大的冲突。 此限制可能使此类存储库不适合在基于合并的工作流中使用。
2020 年更新:
git fetch --shallow-exclude=
git fetch --shallow-since=
回填历史记录: git pull --unshallow
git pull --unshallow
补充:
回填 部分 历史记录: git fetch --depth=100.
git fetch --depth=100