자식 서브 모듈과 서브 트리의 차이점
자식 하위 모듈과 하위 트리를 사용하는 것의 개념적 차이점은 무엇입니까?
각각에 대한 일반적인 시나리오는 무엇입니까?
- 서브 모듈 은 컴포넌트 기반 개발에 더 적합하며 , 주요 프로젝트는 다른 컴포넌트 (repo)의 고정 버전에 의존합니다.
당신은 당신의 부모의 repo에 대한 참조 만 유지 ( gitlinks , 인덱스 특수 항목 )
링크가 항상 외부 저장소의 헤드를 가리 키도록하려면 어떻게합니까?
다음을 사용하여 서브 모듈이 원격 모듈 리포지토리의 HEAD를 따르도록 서브 모듈을 만들 수 있습니다.
o git submodule add -b <branch> <repository> [<path>]
. (따라서 분기를 지정하기 위해)
o git submodule update --remote
서브 모듈의 내용을 <repository>/<branch>
기본적으로 에서 최신 HEAD로 업데이트합니다 origin/master
. 주 프로젝트는 여전히 --remote
사용 되더라도 서브 모듈의 HEAD 해시를 추적합니다 .
- 서브 트리는 시스템 기반 개발 과 비슷 합니다. 모든 리포지토리에 모든 것이 한꺼번에 포함되어 있으며 모든 부분을 수정할 수 있습니다.
이 답변의 예를 참조하십시오 .
하위 모듈은 링크입니다.
하위 트리는 복사입니다
개념적 차이는 다음과 같습니다.
와 자식 서브 모듈 당신은 일반적으로 작은 것들로 큰 저장소를 구분합니다. 하위 모듈을 참조하는 방법은 maven 스타일 입니다. 다른 (하위 모듈) 저장소에서 단일 커밋을 참조하고 있습니다. 서브 모듈 내에서 변경이 필요한 경우 서브 모듈 내에서 커밋 / 푸시를 수행 한 다음 기본 리포지토리에서 새 커밋을 참조한 다음 메인 리포지토리의 변경된 참조를 커밋 / 푸시해야합니다. 그렇게하면 완전한 빌드를 위해 두 저장소 모두에 액세스 할 수 있어야합니다.
자식 하위 트리 를 사용하면 기록을 포함하여 다른 저장소를 통합 할 수 있습니다. 따라서 통합 후에는 저장소의 크기가 더 클 수 있으므로 저장소를 더 작게 유지하는 전략이 아닙니다. 통합 후에는 다른 리포지토리에 연결할 수 없으며 업데이트를 원하지 않으면 액세스 할 필요가 없습니다. 따라서이 전략은 코드 및 기록 재사용에 더 적합합니다. 개인적으로는 사용하지 않습니다.
서브 모듈
원격으로 메인 REPO을 눌러 하위 모듈의 파일을 밀어하지 않습니다
하위 트리
를 메인 리포지토리로 푸시하여 하위 트리의 파일을 원격 푸시
참고 URL : https://stackoverflow.com/questions/31769820/differences-between-git-submodule-and-subtree
'IT' 카테고리의 다른 글
Jest를 사용하여 단일 파일을 어떻게 테스트합니까? (0) | 2020.03.30 |
---|---|
C #의 인라인 함수? (0) | 2020.03.30 |
PHP에서 GET 요청을 보내는 방법은 무엇입니까? (0) | 2020.03.30 |
다른 파일 확장자를 특정 언어로 처리하기 위해 VS Code를 만드는 방법은 무엇입니까? (0) | 2020.03.30 |
테이블에 특정 인덱스가 있는지 어떻게 확인합니까? (0) | 2020.03.30 |