git repo를 어떻게 백업합니까?


26

SVN에서 git로 전환하려고합니다. svn을 사용하면 repo 폴더를 백업 할 때 복사합니다. 그러나 git에는 아무것도 없으므로 어떻게해야합니까?

별도의 드라이브에 복제본을 생성하고 프로젝트에서 가져와 업데이트해야합니까? 그런 다음이 폴더를 레코딩 / 아카이브 할 수 있으며 모든 히스토리가 있습니까?

이것은 아마도 분명하지만 백업과 관련하여 확인하고 싶습니다. 나는 여전히 루트 저장소가 있다고 가정합니다.


참조 : 백업 GitHub의 저장소 (답변이 너무 비 GitHub의의 자식 프로젝트에 대한 작업)
마틴 토마스

답변:


14

당신은 그것을 복사합니다. git repo 폴더를 사용하지만 일반 디렉토리보기에서 숨겨져 있습니다. (폴더는 .git* nix 시스템에 이름이 지정 되어 있으므로을 사용하는 경우에만 나타납니다 ls -a. Windows에서 "hidden"속성을 설정한다고 가정하지만 Windows 환경에서는 git을 사용한 적이 없으므로 확실하지 않습니다. 어떻게 처리되는지)


내 트렁크에 두 개의 프로젝트 파일이 있는데 무시합니다. 문자 그대로 복사 할 수 있습니까? (리눅스와 같은 방식으로 작동한다고 가정합니다). 복제본은 파일 사본입니까? 원하는 모든 데이터를 폴더에 가져 오면 추측합니다. .git 파일이 있는지 확인했지만 svn 트렁크에 .svn 파일이 있으며 기록 데이터가 있는지 확인하지

2
Windows에서는 여전히 .git"숨겨진"속성이 있습니다.
grawity

1
@ acidzombie24 : .git디렉토리에는 히스토리를 포함한 전체 저장소 상태가 포함됩니다. (즉, "분산"부분입니다.)
grawity

5
@grawity : "자체 포함 된"부분이 많을수록, 배포 된 부분은 자체 포함 된 저장소 사이에서 diff를 교환 할 때입니다 :)
akira

19

akira 답변은 정확하지만 --mirror를 추가하여 베어 레포 (약간 작은 백업의 경우)를 만들 수 있습니다.

우리는 다음 전략을 사용합니다 (거의 정확히).

git clone --mirror yourrepo backup.repo
tar cjf backup.repo.tar.bz2 backup.repo
scp backup.tar.bz2 ssh://somewhereelse

그런 다음 백업에서 복구하려면

tar xjf backup.repo.tar.bz2
git clone backup.repo yourrepo

2
도움이됩니다. 감사합니다. 백업 된 리포지를 사용하여 작업 트리를 복원하는 방법
Jonathan Day

10

내가 사용하고 자식 번들을 . 사본 파일 (하나의 백업 파일)을 만들려면 다음을 실행하십시오.

git bundle create backup.bundle master

브랜치 마스터로 리포지토리를 복원하려면 간단히 backup.bundle 파일을 복제하십시오.

git clone backup.bundle -b master my-project

2

다른 곳에 새 클론을 생성하십시오.

 % git clone yourepo somewhereelse

btw, git 에는 repo 폴더가 있으며 하위 디렉토리 아래의 작업 복사본에서 찾을 수 있습니다 .git. 모든 작업 사본에는 해당 "리포 폴더"가 있습니다.


10
복제본은 정확한 사본 이 아니기 때문에 백업으로 받아 들일 수 없다고 생각합니다 . 복제 된 리포지토리의 원격 분기는 복제본에서 누락되고 복제 된 리포지토리의 분기는 복제에서 원격 분기로 표시됩니다.
sleske
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.