누군가에게 git 저장소를 이메일로 보내려면 어떻게해야합니까?


84

나는 시도했다 :

git archive HEAD --format=zip > archive.zip

: 그런 다음 archive.zip으로 이메일을 보내고 다른 쪽 끝에는 archive.zip을 폴더에 압축 해제합니다. 그러나 git 명령을 시도 할 때 유효한 git 저장소가 생성되지 않는다는 것을 알게됩니다.


19
이것을 찾는 다른 사람들을 위해 : git 아카이브가 작업에 적합하지 않은 이유는 작업 트리 만 패키지화하기 때문입니다. 배포를 위해 모든 소스의 tarball을 만드는 것과 같은 작업을 수행하기위한 것입니다.
Cascabel

답변:


113

git bundle하나의 파일을 사용 하고 이메일로 보낼 수 있습니다.

자세한 내용은 " 자식을 사용하는 프로젝트를 백업 "

git 번들은 하나의 파일로 매우 쉽게 생성하고 다른 원격지처럼 취급 할 수 있으므로 다시 가져올 수 있습니다.

수신되면 복제하거나 해당 파일에서 가져올 수 있습니다.

" Backup of github repo " 에서 언급했듯이 모든 브랜치에서 번들을 만드는 첫 번째 이메일을 원할 것입니다 .

$ git bundle create /tmp/foo-all --all

Andreas 가 의견에서 언급 했듯이 Scott Chacon은 최근 (2010 년 3 월) ProGit 블로그 에이 주제에 대한 "귀여운"기사를 썼습니다 .

Git의 작은 기쁨 번들


3
@Zubair : 예, 모든 기록이 저장됩니다 git archive.
VonC

2
감사. 나는 그것을 알아 냈다 : git init, 그리고 : git pull bundle.bdl master
appshare.co

6
@Zubair : 번들 해제 하시겠습니까? 단순히 복제하여 일반 git repo로 되돌릴 수 있습니다. 또는 빈 저장소에서 가져옵니다. 어떤 지금은 참조하십시오, 당신이 무슨 짓을했는지)
VonC

1
다음은 번들 명령을 사용하는 방법과 기능에 대한 좋은 개요입니다. progit.org/2010/03/10/bundles.html
Andreas

2
@BVengerov 링크는 이제 git-scm.com/blog/2010/03/10/bundles.html
VonC

4

이전 답변에서 말했듯이 git bundle 이 방법입니다.

하나의 브랜치 만 사용하고 (마스터 만 번들링하는 것을 선호 함) 이메일을 통해 번들을 생성하려면 다음과 같이 할 수 있습니다.

$ git bundle create /tmp/mygitbackup.bundle master

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.