전체 저장소를 git 번들로 묶는 방법
완전한 리포지토리를 네트워크에 연결되지 않은 새로운 머신 (단일 파일 엔티티로 선호 됨)으로 전송해야합니다. git 번들은 sneakernet 환경에서 git fetch, git pull스타일 작업을 허용 하지만 대상 머신에 이미 작동중인 저장소 버전이 있다고 가정하는 것으로 보입니다.
다음에 대한 올바른 호출은 무엇입니까?
- 현재 저장소의 모든 브랜치 번들
- 대상 디렉토리에서 새 저장소를 시작합니다. 즉, 루트 커밋을 올바르게 설치합니다.
다음에 대한 올바른 호출은 무엇입니까?
- 현재 저장소의 모든 브랜치 번들
단순한:
$ 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
'Programming' 카테고리의 다른 글
| 웹 페이지의 체크 박스 – 어떻게 더 크게 만들 수 있습니까? (0) | 2020.08.17 |
|---|---|
| 파이썬에서 "탭"을 어떻게 작성합니까? (0) | 2020.08.17 |
| AngularJS : 모델 요소가 모델 배열에서 연결될 때 ng-repeat 목록이 업데이트되지 않습니다. (0) | 2020.08.17 |
| Xcode에서 템플릿 변경 (0) | 2020.08.17 |
| 긴 정수의 최대 값 (0) | 2020.08.17 |