3

コンピューターの 1 つで GIT を使用して追跡する作業ディレクトリがあり、過去のある時点で、外付けハード ドライブにリモート (ベア) リポジトリを作成しました。このリモコンは と呼ばれoriginます。その後、後で他のコンピューターでそのレポを複製しました。を作成originして以来、あらゆるコンピューターからすべての変更をプッシュして、常に最新の状態に保つようにしています。次に、これらの変更を他のコンピューターに戻して、作業ディレクトリがすべて同じになるようにします。

先日、外付けHDDの整理をすることにしました。ドライブの別の場所に新しい裸のレポ (と呼びましょうother_remote) を作成し、それを新しいリモートとして自分のコンピューターの 1 つの作業ディレクトリに追加し、その作業ディレクトリをそこにプッシュしました。

今、私はorigin自分の HDD からレポを消去しようとしていましたが、先に進む前に疑問があり、後悔するようなことをしていないことを確認するために 2 つのリモート レポジトリを比較することにしました。

私は始めてdu、これを得ました:

$ du -sch origin                                                                                                                                  
207M    origin
207M    total

$ du -sch other_remote                                                                                                                      
34M     other_remote
34M     total

今、それは私を怖がらせました!私は明らかにoriginまだ消去していません。私は多くの調査を行いました(こことグーグルで)が、それに関する情報は見つかりませんでした.

git count-objects -v私が見つけた唯一のことは、レポのサイズを適切に見積もるために使用できると誰かが言っていることでした。しかし、繰り返しになりますが、このコマンドは、私の 2 つの裸のリポジトリでまったく異なる結果をもたらします。

$ cd path/to/origin
$ git count-objects -v
count: 137
size: 211976
in-pack: 0
packs: 0
size-pack: 0
prune-packable: 0
garbage: 0

$ cd other/path/to/other_remote
$ git count-objects -v
count: 6
size: 9888
in-pack: 131
packs: 1
size-pack: 24725
prune-packable: 0
garbage: 0

私の2つのリモートリポジトリがなぜそんなに違うのか、誰かが理解するのを手伝ってくれますか? origin消去して保持するだけで安全other_remoteですか? その場合、一部の情報が失われますか?

どうもありがとう

4

1 に答える 1

0

まず、git count-objectsアンパックされたオブジェクトのみをカウントします (ベアリポジトリでは、最初のプッシュ後にパックされる可能性があります)。同じ数のファイルに対してリポジトリが大きくなる原因については、
Why is my git repository so big? 」と「 Do I ever need to run git gc on a raw repo?」(ダングリング コミットが原因でオブジェクトが失われる) も参照してください。

ポイントは、新しいベア レポは、同じ履歴を持つアクティブな非ベア レポよりも小さい可能性が高いということです。

次に、すべて (すべてのブランチとすべてのタグ) をプッシュしたことを確認します。
たとえば、「既存のリポジトリを追加するときに GitHub ですべてのブランチをプッシュするにはどうすればよいですか?」を参照してください。
あなたはちょうどgit push myNewBareRepo、またはgit push --all myNewBareRepoですか?

于 2012-11-08T07:31:29.307 に答える