[노트] git clone 서브 모듈이 다운로드되지 않은 문제 해결

5988 단어 git
[노트] git clone 서브 모듈이 다운로드되지 않은 문제 해결
★ 1. 많은 하위 모듈을 포함하는 프로젝트를 다운로드합니다
예를 들어 git clone --recursive https://github.com/caffe2/caffe2 만약 네트워크가 좋지 않거나 다른 원인으로 인해 서브모듈이 완전히 다운로드되지 않았다면 git pull로는 완전히 다운로드할 수 없습니다.
주: 이것은 영어 환경에서 실행된 결과입니다. 영어Submodule는 중국어 환경에서'자모 그룹'으로 번역되었습니다.로그에서 볼 수 있듯이 많은 서브 모듈(편폭을 절약하기 위해 완전한 로그략은 스스로 테스트를 다운로드할 수 있다)이 있다.
$ git clone --recursive https://github.com/caffe2/caffe2
Cloning into 'caffe2'...
remote: Counting objects: 36771, done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 36771 (delta 6), reused 7 (delta 5), pack-reused 36754
Receiving objects: 100% (36771/36771), 149.13 MiB | 2.76 MiB/s, done.
Resolving deltas: 100% (26926/26926), done.

(       protobuf  ,      )
Submodule 'third_party/protobuf' (https://github.com/google/protobuf.git) registered for path 'third_party/protobuf'
( )
Cloning into 'third_party/protobuf'...
remote: Counting objects: 47717, done.
remote: Compressing objects: 100% (49/49), done.
remote: Total 47717 (delta 23), reused 23 (delta 5), pack-reused 47657
Receiving objects: 100% (47717/47717), 40.97 MiB | 59.00 KiB/s, done.
Resolving deltas: 100% (32097/32097), done.
Checking connectivity... done.
Submodule path 'third_party/protobuf': checked out 'a428e42072765993ff674fda72863c9f1aa2d268'
( )

★ 2. 서브 모듈 다운로드
git submodule update --init --recursive

만약 정자 모듈이 완전히 다운로드되었는지 확실하지 않다면, 이 명령을 실행해서 확인할 수도 있다.
★ 3. 참조git clone --help
  • git 2.7.4 버전:
  • --recursive, --recurse-submodules
       After the clone is created, initialize all submodules within, using their default settings. This is equivalent to running git submodule
       update --init --recursive immediately after the clone is finished. This option is ignored if the cloned repository does not have a
       worktree/checkout (i.e. if any of --no-checkout/-n, --bare, or --mirror is given)
  • git 2.14.1 버전:
  • --recurse-submodules[=
       After the clone is created, initialize and clone submodules within based on the provided pathspec. If
       no pathspec is provided, all submodules are initialized and cloned. Submodules are initialized and
       cloned using their default settings. The resulting clone has submodule.active set to the provided
       pathspec, or "." (meaning all submodules) if no pathspec is provided. This is equivalent to running git
       submodule update --init --recursive immediately after the clone is finished. This option is ignored if
       the cloned repository does not have a worktree/checkout (i.e. if any of --no-checkout/-n, --bare, or
       --mirror is given)

    좋은 웹페이지 즐겨찾기