제 프로젝트에서 여러 Git 저장소에 저장되어있는 제 3 자 코드를 사용해야합니다. 내 프로젝트도 Git 저장소에 저장된다. 메인 프로젝트에서 저와 함께 일하는 사람들이 몇 명 있으며, 저는 관리자입니다.Git submodules workflow
이전 프로젝트에서는 종속성을 수동으로 Git 작업 트리에 복사하면서 내가 사용하는 버전을 지정하는 작은 파일을 추가했습니다.
매일 매일 의존성을 업데이트해야하며, 종종 코드를 직접 작성해야합니다. 대부분의 경우 기본 프로젝트의 변경 사항과 관련이 있습니다.
나는 Git 서브 모듈을 사용해 관리를하기로 결정했다. 더 많이 시도할수록 더 좌절감을 느낍니다. 수동 복사가 더 나은 것 같습니다.
- 우리는 더 이상 (
git checkout
지금git submodule update --init
필요) 하나의 명령으로 일관 저장소 상태를 얻을 수있어 없습니다 :은 여기 내 문제의 일부입니다.
- Git 도구를 제대로 사용할 수 없습니다 (
git archive
이 가장 주목할만한 기능입니다). - 주 프로젝트의 상태 변경/차이를 하위 모듈로 볼 수 없습니다.
- 방금 발견 한 것처럼
git submodule
은--git-dir
및--work-tree
옵션과 작동하지 않으며 현재 디렉토리를 "작업 트리의 최상위 수준"으로 물리적으로 변경해야합니다.
우리의 서브 모듈 워크 플로우 (하나의 작업 == 하나의 명령)를 능률화하기 위해 Git 주위에 다소 두꺼운 래퍼를 작성해야합니다. 이거 슬프네.
자식 (Git)에서 벗어나 하위 프로젝트 개발을 완전히 주 프로젝트로 병합하는 것은 선택할 수 없습니다.
아마 내가 잘못된 방법으로 git submodules
을 사용하고 있습니까? 워크 플로우에 대한 훌륭한 자습서가 있습니까?
정답을 모르겠지만 내 의견을 공유하십시오. :-)
하나는, 그것은 다른 사람의 저장소를 나누기. 예를 들어, 누군가가 github에서 라이브러리를 작성하면 대신 포크를 가리 키도록 하위 모듈을 전환합니다. 해결 방법은 하위 모듈을 삭제하고 모든 사용자가 끌어서 업데이트하도록 한 다음 하위 모듈을 교체하고 모든 사용자가 다시 가져 와서 업데이트하도록하는 것입니다. –
누군가가이 게시물을 훔쳐서 참조없이 habr에 게시했다고 생각했지만 이름을 보았습니다. :-D 그래도 SO에 대한 참조는 좋을 것 같습니다. –
하나 있습니다.텍스트의 링크를 더 자세히 살펴보십시오. –