2009-08-19 5 views
1

필자는 효과적으로 독립적 인 툴 세트를 포함하는 웹 사이트를 가지고 있습니다. 각 툴은 고유 한 디렉토리를 가지고 있습니다. 예를 들면 :웹 사이트의 하위 디렉토리에 개별 git 리포지토리를 만들어야합니까, 아니면 개별적으로 분기 할 수 있습니까?

/웹 루트 /웹 루트/도구-1 /웹 루트/도구-2/도구-3 각 도구에 대한

개발 개별적으로 발생 /웹 루트, 그래서 서로 다른 지점을 만들 수있는 각기 다른 시간이 필요합니다.

나는 버전 제어를 위해 힘내로 이동하고 있으며 문서에서 수집 한 내용 중에서 각 도구에 대해 하나의 자식 저장소를 만드는 것이 가장 좋습니다. Webroot 수준에서 단일 리포지토리를 유지하면서 하위 수준의 도구 - # 디렉터리를 독립적 인 방식으로 유지하는 방법이 있다면 (그리고 요점은 더 중요합니다) 궁금합니다.

(참고 : GitHub의 개인 공간 구입을 고려하고 있기 때문에 관심이있는 주된 이유입니다. 모든 것이 유지 관리의 악몽을 일으키지 않고도 한 저장소에서 쉽고 효과적으로 처리 될 수 있다면 15 개 정도의 도구 각각에 대해 하나의 저장소를 만들어야하는 경우보다 저렴한 계획을 활용하십시오.)

+0

(이 접근 방법에 대한 최종 대답을 허용 된 대답을 참조하십시오.) –

답변

2

개별 도구 디렉토리가 진정으로 독립적인지 또는 어떤 식 으로든 상호 연관되어 있는지 여부에 따라 달라집니다. Git에서는 대개 독립적 인 개별 프로젝트를위한 별도의 저장소가있는 것이 가장 좋습니다. 웹 사이트의 경우 각 도구가 독립적 인 경우 개별 repo를 만들지 만 두 코드간에 코드를 공유하는 경우 하나의 repo 만 사용할 수 있습니다.

당연히 Git 에는 아무 것도 없습니다. 당신은 하나의 repo를 갖지 못합니다. 변화의 역사를 좀 더 복잡하게 만들지 만 그것은 유일한 단점입니다. 또한 웹 사이트의 프로덕션 서버에 배포하는 작업은 단일 저장소를 사용하는 것이 더 쉽습니다.

GitHub에서 개인용 Repos를 사용하면 상황이 복잡해집니다. 각 도구에 별도의 저장소가있는 경우보다 비싼 계획이 필요합니다. 나는 상황의 경제성과 단일 또는 다중 리포지셔닝과 관련된 기술적 문제의 균형을 맞추어야한다고 생각합니다.

+0

나는 방정식의 전개 부분을 완전히 생각하지 못했습니다. 중첩되는 몇 가지 요소 (머리글과 바닥 글)가 있지만, 나는 항상 그것들을 자신의 의사 도구로 취급하고 독자적으로 배포했습니다. 이는 주로 Subversion 저장소가 개별 도구 분기를 처리하도록 설정된 방식을 기반으로합니다. 여전히 마음을 git 작동 방식으로 조정하면됩니다. –

+0

별도의 리포지토리 인 경우 쉽게 배포 할 수 있도록 하위 프로젝트를 사용할 수 있습니다. –

+0

처음에이 방법에 접근하는 방법은 모든 것을 포함하는 하나의 저장소를 사용하는 것입니다. 주요 개발을 위해 각 툴에 대해 하나의 브랜치를 생성하여 작업해야합니다. 도구가 안정된 상태에 있고 배포 준비가되면 도구를 마스터 분기로 병합합니다. 주어진 도구에 대해 동시에 여러 기능을 사용해야하는 경우 필요에 따라 추가 분기를 간단히 작성합니다. –

1

별도의 저장소에 있어야합니다. 그러나 유지 관리 작업을 많이하지 않아도 동일한 저장소에 모든 항목을 배치하고 자체 지점의 각 도구에 대한 개발 작업을 수행하여 비슷한 것을 관리 할 수 ​​있습니다.

따라서, 예를 들어, 한 번에 모든 것을 확인하고 가지 "도구 1", "TOOL2"를 만들 ...

개발자는 그 지점에서 작동합니다. 실제로 빈 저장소로 시작하여 거기에서 분기를 작성하면 도구를 서로 완전히 분리 할 수 ​​있지만 원하는 경우 도구를 병합 할 수 있습니다.

+0

개별 도구의 분기에서 다른 도구를 삭제하면이 기능을 다시 사용할 수 없음을 의미합니다. 마스터는 다른 도구도 제거하지 않고도 사용할 수 있습니다. 나는 아직도 자식이 아니기 때문에 내가 이것을지지 할 수 있는지 확인하고 싶다.기본적으로,이 작업을 수행 한 경우, 변경 사항을 마스터로 다시 푸시하는 대신 분기를 기본 개발 트리로 유지합니다. –

+0

병합이 엉망이 될 수 있습니다. 비어있는 저장소를 만들고, 각 도구에 대한 분기점을 분기 한 다음 해당 도구 만 분기로 확인하는 방법은 어떻습니까? 원래의 제안에서 나타나는 "삭제"작업에 대해 걱정하지 않고도 나중에 한 번에 쉽게 병합 할 수 있습니다. 그리고 네, 항상 마스터로 돌아가는 것보다 나뭇 가지를 기본 개발 트리로 유지할 수 있습니다. – Jonathan

+0

그에 따라 답변을 수정했습니다. – Jonathan

0

git subtree 도구로 임의의 저장소 분할 및 병합을 수행 할 수 있습니다.