전체 저장소를 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
이것은 repo
git 저장소로 생성 됩니다.
먼저 저장소를 복제하고 --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 |