2

私は git の使い方を学んでいますが、電源障害や接続の問題によって git fetch コマンドが中断される前にフェッチされたファイルはどうなるのか疑問に思っています.中断前にフェッチされたファイルは私のコンピューターにコピーされますか?.

4

2 に答える 2

3

Agit fetchはリモート リポジトリからオブジェクトを転送します。Git の整合性を維持するために、完全なオブジェクトのみがローカル リポジトリに書き込まれます。したがって、フェッチが中断された場合、オブジェクトの一部が残ることになります。つまり、フェッチは完了していませんが、単一のオブジェクトが破損することはありません。その後のフェッチで、Git は欠落しているオブジェクトを再度計算し、それらを取得します。

于 2012-12-02T17:11:53.407 に答える
1

git fetch がオブジェクトの受信を開始する objects/packと、リポジトリのディレクトリに一時ファイルが作成され、新しいオブジェクトが保持されます。フェッチが完了すると、その一時ファイルの名前が変更され、他の git プロセスで使用される名前に変更されます。フェッチが中断された場合、その一時ファイルは別のフェッチを含めてほとんど無視されます。そのため、中断前に転送されたものはすべて再度転送されます。

時間内 (デフォルトでは 2 週間) に、一時パック ファイルはガベージ コレクション プロセスによる削除の対象となります。を実行すると、すぐに強制的に実行できgit gc --prune=nowます。

于 2012-12-02T19:12:06.023 に答える