2013-07-26 2 views

답변

2

별도의 "프로젝트"를 다시 사용하려면 git submodule을 사용해야합니다. 그러나 당신이하지 않으면, 나는 단순히 하나의 유일한 자식에 따라 다른 폴더에서 그들을 분리 할 것이다.

자식 서브 모듈은 "복제"할 수있는 프로젝트를 위해 중대하다 및 기타 (더 큰) 프로젝트를 최신 상태로 유지한다.

하위 모듈을 처리 할 때 약간의 복잡성이 추가된다는 점에 유의하십시오.

3

단일 모듈이 상당히 독립적 인 경우 git submodule을 사용하여 두 가지 방법을 섞을 수 있습니다. 결국 각 하위 프로젝트에 대한 폴더가있는 단일 폴더/저장소로 끝납니다. 모든 하위 프로젝트는 별도의 저장소이며, 같은 사용할 수 있지만 루트 저장소에서 각 프로젝트의 버전을 추적 할 수있는 능력을 얻을뿐만 아니라, "공동"을 발행하는 것

에서와 같이 하위 모듈 명령
git submodule update 

또는

git submodule foreach make 

에서와 같이 "재귀"명령, 당신은 documentationtutorial 온라인의 일종 찾을 수 있습니다. 여기

내가 별도의 프로젝트로 사람들을 유지할 것

git init 
git submodule add ssh://.../ncs 
... 
git submodule add ssh://.../test_network 
vim Makefile #write the Makefile for the whole project 
git add Makefile 
git commit -i -m "Makefile added" 
git submodule foreach autoreconf -i 
git submodule foreach ./configure 
make test 
0

여러 서브 모듈을 포함하는 저장소 (NCS, ..., test_network)를 설정하는 예입니다. git repos를 결합해야하는 경우 항상 git submodules을 사용할 수 있습니다.

+0

다음과 같은 몇 가지 심각한 [단점] (http://stackoverflow.com/questions/17875040/how-to-organize-different-parts-of-project-in-git-repo/32237710#32237710)이 있습니다. "부분 당 하나의 repo"접근 방식, 그리고 그 장점이 가치가 있는지 모르겠습니다. –

0

나는 프론트 엔드 웹 응용 프로그램 구성 프로젝트, 백엔드 하나, Chrome 확장, 웹 사이트, 몇 공유 라이브러리에 대해 "하나 개의 repo 부품 당"접근 방식을 시도했습니다. 이것은 주로 라이브러리가 GitHub에서 공개되어 있으며 코드의 나머지 부분은 독점적이라는 사실에 의해 결정되었습니다.

  1. 업데이트가 느렸다 :

    이 분명 오픈 소스 화 라이브러리에 대한 큰 일 동안

    , 그것은 개인의 repos에 대한 몇 가지 문제를 야기 밝혀졌다. WebStorm (및 다른 IDEs)은이 추가 리포지토리를 확인해야했습니다 (VCS를 동기화 할 때 확인하는 데 약 10 초가 걸렸으며 업데이트가 없었습니다). 나는 현재 프로젝트의 의존 된 각 디렉토리에 git pull했다 쉘 스크립트 작성 결국 (프론트 엔드/백엔드/등.)
  2. 가 되 돌린 예를 들어, 서로에 의존하는 프로젝트의 일부 (이전을 통해 커밋 제공 API 변경)은 쉽지 않습니다 - 다른 repos에서 다른 커밋을 체크 아웃하거나 태그를 항상 사용해야합니다. 커밋 타임 스탬프를 보는 것이 가장 쉬운 방법이었습니다.

나는이 패턴을 발견했습니다 유일한 잘 사용 사례 : 다른 권한이 필요

  • 레 포스, 예를 들어,이 오픈 소스 구성 요소 대 독점적 인 repo는 분명히 분리되어야합니다. 그러나 하나의 비공개 저장소는 프로젝트의 여러 부분을 비공개로 유지할 수 있습니다 (예 :프론트 엔드와 백엔드는 동일한 저장소에있는 디렉토리 일 수 있습니다.)
  • GitHub에서 별도의 이슈 트래커를 사용하면 "In ..., this happens"로 모든 문제를 시작할 필요가 없습니다.
관련 문제