Programming

전체 저장소를 git 번들로 묶는 방법

procodes 2020. 8. 17. 10:43
반응형

전체 저장소를 git 번들로 묶는 방법


완전한 리포지토리를 네트워크에 연결되지 않은 새로운 머신 (단일 파일 엔티티로 선호 됨)으로 전송해야합니다. git 번들은 sneakernet 환경에서 git fetch, git pull스타일 작업을 허용 하지만 대상 머신에 이미 작동중인 저장소 버전이 있다고 가정하는 것으로 보입니다.

다음에 대한 올바른 호출은 무엇입니까?

  1. 현재 저장소의 모든 브랜치 번들
  2. 대상 디렉토리에서 새 저장소를 시작합니다. 즉, 루트 커밋을 올바르게 설치합니다.

다음에 대한 올바른 호출은 무엇입니까?

  • 현재 저장소의 모든 브랜치 번들

단순한:

$ git bundle create repo.bundle --all

여기 repo.bundle만들려는 번들 파일의 이름입니다. 참고 --all단지 일반 복제와 같게 않을 것 ... 원격 추적 브랜치를 포함하지 않을 것입니다.

  • 대상 디렉토리에서 새 저장소를 시작합니다. 즉, 루트 커밋을 올바르게 설치합니다.

첫째, clone그냥 init+ fetch(+ administrativia).

둘째, 저장소 URL을 사용할 수있는 모든 곳에서 번들 파일을 사용할 수 있으므로 번들 파일 clone에서 간단하게 사용할 수 있습니다 .

$ git clone repo.bundle

이것은 repogit 저장소로 생성 됩니다.


먼저 저장소를 복제하고 --mirror옵션을 포함합니다 .

git clone --mirror git@example.org:path/repo.git

이렇게하면 모든 원격 분기가 번들링 할 준비가 된 로컬 분기가됩니다.

그런 다음 실행

git bundle create repo.bundle --all Jakub Narębski의 답변에 설명 된대로


.git 폴더를 tar 또는 zip하고 새 위치에 압축을 푼 다음 git reset --hard HEAD. 모든 브랜치에 필요한 모든 것은 .git 아래에 있으며 .git / config 파일에서 원격을 조정하거나 제거하기 만하면됩니다.

tar cf myrepo.tgz .git
cp myrepo.tgz [USB_STICK]
... move to new machine ...
mkdir myrepo && cd myrepo
tar xpf [USB_STICK]/myrepo.tgz
git reset --hard HEAD

참고 URL : https://stackoverflow.com/questions/11792671/how-to-git-bundle-a-complete-repo

반응형