Git 1.9 / 2.0(2014年第1四半期)でその制限が削除されたことに注意してください。NguyễnTháiNgọcDuy()のcommit82fba2bを
参照してください。pclouds
gitがシャロークローンとの間のデータ転送をサポートするようになったため、これらの制限はもはや当てはまりません。
ドキュメントは今読んでいます:
--depth <depth>::
指定されたリビジョン数に切り捨てられた履歴を持つ「浅い」クローンを作成します。
これは、 0d7d285、f2c681c、c29a7b8のような、浅いクローンとの/からのクローン、send-pack/receive-packをサポートするコミットに由来します。smart-httpは、浅いフェッチ/クローンもサポートするようになりました。
詳細はすべて「shallow.c
:」の新しいコミットを選択するための8つのステップにあります.git/shallow
。
2015年6月の更新:Git 2.5では、単一のコミットをフェッチすることもできます。
(究極の浅いケース)
2016年1月の更新:Git 2.8(Mach 2016)は、最小限の履歴を取得する方法を公式に文書化しています。Stephen P. Smith( ``)によるcommit 99487cf
、commit 9cfde9e(2015年12月30日)、commit 9cfde9e(2015年12月30日)、commit bac5874(2015年12月29日)、commit 1de2e44 (2015年12月28日)を参照してください。( Junio C Hamanoによってマージされました---コミット7e3e80a、2016年1月20日)
gitster
これは「Documentation/user-manual.txt
」
Aは、スイッチ<<def_shallow_clone,shallow clone>>
を指定することによって作成されます。
深さは後でスイッチで変更するか、完全な履歴をで復元できます。git-clone --depth
git-fetch --depth
--unshallow
<<def_shallow_clone,shallow clone>>
マージベースが最近の履歴にある限り、内部でのマージは機能します。
そうしないと、無関係な履歴をマージするようなものになり、大きな競合が発生する可能性があります。
この制限により、このようなリポジトリはマージベースのワークフローでの使用に適さなくなる可能性があります。
2020年の更新:
- git 2.11.1は
git fetch --shallow-exclude=
、すべての履歴のフェッチを防ぐためのオプションを導入しました
- git 2.11.1では
git fetch --shallow-since=
、古いコミットのフェッチを防ぐためのオプションが導入されました。
シャロークローンの更新プロセスの詳細については、「gitシャロークローンを更新する方法」を参照してください。
リチャードマイケルによってコメントされたように:
履歴を埋め戻すには:git pull --unshallow
そして、 OlleHärstedtはコメントに追加します:
履歴の一部を埋め戻すには: git fetch --depth=100
。