6

たとえば、20GBのディレクトリが20.1GBのディスク容量の空きがあるコンピュータに保存されていて、このディレクトリをリビジョン管理下に置きたい場合を考えてみます。サーバーは改訂履歴を保存するために利用できます。

Subversionでは、サーバーから空のディレクトリをチェックアウトし、ファイルを追加してコミットします。これにより、作業ディレクトリとほぼ同じサイズの.svnディレクトリが作成されるため、変更を検出して差分を作成できます。.svnディレクトリのサイズは、定期的に変更しても時間の経過とともに変化しません。

ただし、これをgit(gitinit。;gitadd。;git commit)で試すには、完全な履歴をローカルに保存する必要があります。定期的な変更が行われると(十分に圧縮されない大きなバイナリファイルを想定)、.gitディレクトリはディスクに収まらなくなるまで大きくなります。

完全な履歴をローカルに保存しないようにgitを操作する方法はありますか?作業中のブランチの先端に関するデータのみを保持し、履歴リビジョンまたは他のブランチに関する情報が必要になるたびにリモートサーバーにクエリを実行するようにしますか?

注:.gitディレクトリの方が圧縮率が高く、.svnディレクトリよりも大きくなる前に多くの修正を加えることができます。問題は、時間の経過とともに大きくなるのに対し、.svnは大きくならないことです。

4

2 に答える 2

7

やりたいことによっては、これらの回答がヒントになるかもしれませ。一般に、いくつかのソリューションがあります

  • ssh アクセスがある場合は、リモート コピーを操作します。
  • GitHub が提供するようなアクセス API を使用する。
  • 「浅いクローン」の使用:git clone --depth=1
于 2015-02-15T08:39:23.857 に答える
1

GIT は分散 CVS です。このような DCVS の核心は、履歴をローカルに保存することです。

それを変更することはできません。

于 2013-01-24T12:44:22.030 に答える