2012-11-08 2 views
3

저는 컴퓨터 중 하나에서 GIT로 추적하는 작업 디렉토리를 가지고 있으며 과거 어느 시점에서 원격 (베어) 저장소를 만들었습니다 외장형 하드 드라이브. 이 리모컨은 origin입니다. 나중에 다른 컴퓨터에서 해당 저장소를 복제했습니다. origin을 만들었으므로 모든 컴퓨터의 모든 변경 사항을 컴퓨터에 저장하여 항상 최신 상태로 유지합니다. 그런 다음 변경 사항을 다른 컴퓨터로 가져 와서 작업 디렉토리가 모두 동일하게 만듭니다.동일한 작업 디렉토리의 자식 리모트가 다릅니다 (또는 적어도 그 것처럼 보입니다)

요 전날 외장형 HDD를 재구성하기로 결정했습니다. 드라이브의 다른 위치에 새로운 베어 레포 (예 : other_remote)를 만들었고이를 내 컴퓨터 중 하나에서 작업 디렉토리에 새로운 리모콘으로 추가하고 작업 디렉토리를 푸시했습니다.

이제는 내 HDD에서 repo origin을 지우려고했지만 계속하기 전에 의심 스러웠고 두 원격 레포지를 비교하여 내가 후회할 일을하지 않았는지 확인했습니다.

나는 du 시작하고 나는이있어 :

$ du -sch origin                                 
207M origin 
207M total 

$ du -sch other_remote                              
34M  other_remote 
34M  total 

이제 나를 무서 워! 나는 분명히 origin을 지우지 않았다. 나는 많은 연구 (여기와 구글에서)를했지만 그것에 관한 어떤 정보도 찾을 수 없었다.

내가 찾은 유일한 것은 git count-objects -v을 사용하여 repo 크기를 잘 추정 할 수 있다는 것입니다. 그러나 다시,이 명령은 내 두 베어의 repos에 매우 다른 결과를 제공합니다

$ 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 

사람이 내 두 개의 원격의 repos 너무 다른 이유를 내가 이해하는 데 도움이 수 있습니까? origin을 지우고 other_remote 만 지우는 것이 안전합니까? 내가 그렇게하면 약간의 정보를 잃어 버릴 수 있습니까?

덕분에 많은

답변

0

첫째, git count-objects는 압축을 푼 객체를 계산 (그리고 베어의 repo, 그들은 초기 푸시 후 포장 될 가능성이 있습니다).
파일 같은 수의 큰 환매 특약의 원인에 대해서도 "Why is my git repository so big?"참조 "Do I ever need to run git gc on a bare repo?은"요점은

(때문에 매달려의 느슨한 객체가 커밋), 새로운 베어의 repo 작은 될 가능성이 높습니다 같은 역사를 가진 활동적인 비 베어 레포 (non-bare repo)보다.

그런 다음 모든 항목 (모든 분기 및 모든 태그)을 푸시했는지 확인하십시오.
예를 들어 "With GitHub how do I push all branches when adding an existing repo?"을 참조하십시오.
방금 ​​git push myNewBareRepo 또는 git push --all myNewBareRepo이 (가) 사용 했습니까?