2014-12-28 7 views
2

제한된 디스크 파티션 (예 : 썸 드라이브)에 git repo가 ​​있다고 가정 해 봅니다.임시 git 작업을 위해 다른 파티션 사용 (git gc)

현재 파티션이 완전히 채워져 있기 때문에 해당 repo에 대한 마지막 푸시가 실패했다고 가정 해 보겠습니다.

git gc으로 일부 공간을 되 찾으려고합니다. 다음 git gc도 실패합니다 : 이제

$ git gc --prune=now 
fatal: failed to write ref-pack file: No space left on device 
error: failed to run pack-refs 

, 동일한 시스템에, 나는 충분한 공간이있는 다른 파티션을 가지고; 나는이 repo를 복제 할 수 있다는 것을 알고 있으며 gc을 실행 한 다음 다른 파티션의 repo를 첫 번째 파티션으로 복사/다시 쓰는 것을 알고 있습니다.

하지만 궁금 해서요 : 대신, 방법은 내가 원래 파티션에 REPO 내 git gc를 호출하는 동안, 나는 그것을 쓸 필요가 무엇이든 임시 파일에 "다른 파티션을"사용 git을 지시 할 수있다 - 결과와 작업이 완료된 후 git은 "다른 파티션"의 임시 파일을 삭제했을 것입니다. "원본 파티션"repo (필요한 경우 공간 교정 수행)에서 필요한 모든 파일을 수정/삭제/추가했을 것입니다.

답변

2

.git 디렉터리를 다른 위치로 이동 한 다음 --git-dir 옵션을 사용하면 자동으로 현재 작업 디렉터리에서 해당 위치를 알아낼 수 있습니다. 그 외에 Git은 일시적으로 다른 드라이브를 사용할 수 없습니다.

데이터 손상 위험이 너무 커서 Git이 다른 드라이브의 데이터베이스 개체를 먼저 압축 한 다음 원본 개체를 삭제 한 다음 압축 된 데이터를 다시 이동합니다.

그래서 저는 이것이 일반적으로 만나는 에지 사용 사례라고 말하고 싶습니다. 그리고 오늘날의 엄지 드라이브는 너무 커서 문제가되지 않습니다.

+0

답변 주셔서 감사합니다. @poke; 확인해 주셔서 감사합니다. 건배! – sdaau