source

완전한 레포를 묶는 방법

manysource 2023. 10. 2. 15:06

완전한 레포를 묶는 방법

완전한 레포를 네트워크가 아닌 새로운 기계로 전송해야 하는데, 단일 파일 개체로 사용하는 것이 좋습니다.깃 번들을 사용하면 다음과 같은git fetch,git pull스니커넷 환경에서 스타일 작업을 수행하지만 대상 시스템에 이미 작업 버전의 레포가 있다고 가정하는 것으로 보입니다.

올바른 호출 방법:

  1. 현재 Repo에 있는 모든 분기 번들
  2. 대상 디렉터리에서 새 레포를 시작합니다. 즉, 루트 커밋을 올바르게 설치합니다.

다음 사항을 명확히 하기 위해 패치를 업스트림으로 보냈습니다.

`git clone` can use any bundle created without negative refspecs
(e.g., `new`, but not `old..new`).
If you want to match `git clone --mirror`, which would clone other
refs such as `refs/remotes/*`, use `--all`.
If you want to provide the same set of refs that a clone directly
from the source repository would get, use `--branches --tags` for
the `<git-rev-list-args>`.

그렇게$ git bundle create repo.bundle --branches --tags베스트 매치 클로닝.

$ git bundle create repo.bundle --all원격 참조를 포함한 소스 시스템의 미러 이미지를 제공합니다.

올바른 호출 방법:

  • 현재 Repo에 있는 모든 분기 번들

단순:

$ git bundle create repo.bundle --all

여기서repo.bundle은 만들 번들 파일의 이름입니다.:--all원격 추적 지점을 포함하지 않을 겁니다 도 그러지것처럼 입니다.보통의 복제인간들도 하지 않는 것처럼 말입니다.

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

,clone정당합니다init+fetch(+ 관리).

할 수 곳에서 할 수 , URL을 사용할 수 clone번들 파일에서:

$ git clone repo.bundle

가 합니다.repo깃 저장소로서

합니다.--mirror선택.

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

이렇게 하면 모든 원격 분기점도 번들링할 수 있는 로컬 분기점이 됩니다.

그다음달리기

git bundle create repo.bundle --allę브스키이의 와 같이.

에게 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

( Git 2.34 (2021 4 ) 로,git bundle create다음 사항을 추가로 명확히 합니다.

1d9c8da 커밋, 0bb92f3 커밋, 9ab80d 커밋, 5c8273d 커밋 (2021년 7월 31일) æ바르 아른피외르 ð 뱌르마손 ( ) 참조.
(2021년 8월 24일 주니오 C 하마노 ---- 커밋 f19b275)

bundle doc사물의 전제 조건을 bundle doc상세히 설명합니다.

사인-오프: æ바르 아른피외르 ð 비아르마손

"객체 전제조건"에 대한 논의를 자체 섹션으로 나누고, 일반적인 사례의 몇 가지 예를 추가합니다.

여기서 변경되는 문서의 소개는 2e0afaf("Add git-bundle: archive에 의한 객체 및 참조 이동", 2007-02-22, Git v1.5.1-rc1 -- merge)를 참조하십시오.

git bundle이제페이지에 포함됩니다.

객체 필수조건

번들을 생성할 때 공통 히스토리가 없는 저장소에서 번들링을 해제할 수 있는 자체 포함 번들을 생성할 수 있을 뿐만 아니라 기록의 초기 부분에서 필요한 개체를 제외하기 위해 부정적인 수정사항을 제공할 수도 있습니다.

다음과 같은 개정사항을 제공합니다.new로.git bundle create수정판에서 연결할 수 있는 모든 개체가 포함된 번들 파일을 생성합니다.new. 해당 번들은 모든 저장소에서 번들링을 해제하여 개정으로 이어지는 전체 기록을 얻을 수 있습니다.new:

$ git bundle create full.bundle new

다음과 같은 개정 범위old..new수정이 필요한 번들 파일을 생성할 것입니다.old(및 이로부터 도달할 수 있는 모든 객체) 번들은 "unbundle"이 가능하도록 존재합니다.

$ git bundle create full.bundle old..new

사전 요구 사항이 없는 자체 포함 번들은 어디서든, 심지어 빈 저장소로 추출하거나 (즉, 에서) 클로닝할 수 있습니다.new, 그러나 그렇지는old..new).

git bundle이제페이지에 포함됩니다.

git bundle verify' 명령을 사용하여 수신자 저장소에 번들에 필요한 필수 전제 조건 커밋이 있는지 확인할 수 있습니다.

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