2013-03-18 3 views
3

현재 우리는 모듈 A, B, C, D, E을 구성하는 하나의 커다란 프로젝트를 가지고 있습니다. 이 모듈은 동일한 프로젝트 저장소에 github에 있지만 다른 폴더에 있습니다. 각 모듈은 자체 폴더입니다. 프로젝트가 중요하다면 프로젝트는 관리됩니다. Git :: 다중 모듈 프로젝트를 두 개의 모듈로 나누고 이력을 보존하십시오.

는 최근에 우리는 두 개의 서로 다른 경우에 프로젝트를 분할하기로 결정 - P1 및 P2 , 그래서 그들은 서로 다른 저장소에있는 것입니다. P1 모듈은 A, C, D 프로젝트 P2는 B, E을 길게 유지해야한다. 그것은 지금처럼
  • 프로젝트를 남겨주세요 :

    그래서 지금 우리는 우리가 적어도 4 가지 옵션이 있습니다 생각하고 있습니다. P1P2에 대응하는 Git 모듈을 추가하십시오. 따라서 모든 모듈이 적절한 폴더 (부모 프로젝트)를 가리 킵니다. 이렇게하면 기록을 확실히 보존 할 수 있습니다 (적어도 그렇게 생각합니다).

  • P1에 대한 저장소를 만들고 체크인하십시오. 그런 다음 모듈 B, E클라이언트에 옮긴 다음 클라이언트을 모듈로 P2 repo로 가져 오기를 만듭니다. 나는 그것이 가능할 지 모르지만 그것은 또한 역사를 보존해야한다.
  • 체크인의 모든 P1 및 P2으로 다음 P1에서 모듈 B, E을 제거 모듈 A, C, DP2에서. 그런 다음 P2을 자식 모듈로 P1에 추가하십시오. 이것은 역사를 보존해야하지만 실제로는 너무 많습니다. 따라서 모듈 P2에는 P1까지의 모든 내용이 포함됩니다. 가능한 경우이를 피하고 싶습니다.
  • 마지막으로 모든 것을 새 프로젝트로 확인하고 처음부터 다시 시작하십시오.

저는 개인적으로 첫 번째 옵션을 선호하지만 그럴 가능성이 있는지는 확실하지 않습니다. 예를 들어 외국 프로젝트의 하위 폴더에 대한 종속성을 추가하십시오.

답변

2

각 하위 모듈에 대해 새 저장소를 만들려면 git-subtree을 확인해야합니다. split 옵션을 사용하면 하위 폴더의 기록만으로 새 분기를 만들 수 있습니다. 그런 다음 master 브랜치로 push 리모컨에 연결할 수 있습니다.

사용법에 대해 구체적으로 설명해주십시오.

관련 문제