2012-11-09 2 views
2

우리 사무실에는 가정에서 성장한 콘텐츠 관리 시스템이 있습니다. 천천히 그러나 꾸준히, 우리는 60 개의 CMS 인스턴스를 설정했습니다. 예, 우리는 큰 회사입니다. NGO.마스터와 병합하지 않고 GIT의 지점 유지

대부분의 사무소는 현재 양식으로 CMS를 사용합니다. 일부 사무소는 색상, 글꼴, 기본적으로 스킨을 사용자 정의했습니다. 어떤 사람들은 때때로 우리가 핵심에 가져 오는 새로운 기능을 구축합니다. 나는 소스를보다 효율적으로 관리해야 할 의무가있다.

"Core"를 관리하고 있으며 사무실 "A"와 사무실 "B"가 있습니다. 오피스 A는 색상 만 사용자 정의하지만 오피스 B는 코어에 약간의 변경을 가했고 코드는 코어와 다릅니다. 나는 "핵심"에 대해서만 책임을지고 싶다. 새 기능을 개발할 때 이러한 변경 사항을 다른 사무실과 동기화하려고합니다.

마스터와 병합하지 않는 분기를 만드는 것을 고려했습니다. 그러나 주 (主)에 대한 변화는 가지에 갈 수 없습니까? 내가 취해야 할 접근법은 무엇이며 무엇을주의해야합니까?

답변

1

가능한 접근 방법 중 하나입니다.

마스터에 적용하려는 사무실 지점의 커밋의 경우 마스터 위에 체리를 선택하십시오. 당신이하고있는 일을 안다면 마스터의 커밋 시리즈를 리베이스 할 수도 있습니다.

다른 방법으로 가려면 병합이 실제로 적절합니다. 당신은 주인을 사무실 지부에 합병하려고 할 것이지만 그 반대의 방법은 아닙니다. 핵심 변경 사항을 적용 할 지점과 git merge master을 확인합니다. 병합을 시도하지만 사무실 분기 만 건드릴 것입니다. 마스터 브랜치는 이동하지 않습니다.

기본 색상 목록을 제공하고 새 파일을 만들도록 허용하는 것이 좋습니다. 재정의 파일 이름을 .gitignore에 나열하면 변경 사항이 Git 저장소에 커밋되지 않습니다. master의 기본값을 업데이트하고 office 브랜치에 병합 할 수는 있지만 배포 된 복사본을 제외하고는 사무실 컬러 오버라이드를 볼 수 없습니다.

+0

고마워요! 그것은 내 마음에 하나의 근본적인 의심에 대답했습니다 - 스승은 지부와 합병 될 수 있습니다. 나는 오직 가지만이 스승과 합병 할 수 있다는 가정하에 있었다. 주인이 심지어 가지를 고려하면 그것은 의미가 있습니다. 어떻게 마스터와 병합하지 않도록 분기를 설정합니까? 가능한가? – Hari

+0

아무 의미있는 방법으로도 실제로 적용 할 수는 없습니다. Git은 어떤 커밋이 어떤 브랜치에서 왔는지 구분하지 않는다; 브랜치는 커밋에 대한 포인터 일뿐입니다. 두 개의 분기가 같은 커밋을 가리키면 어떤 조상에서 시작된 조상인지 알 수 없습니다. 마스터가 체크 아웃 된 상태에서 '자식 병합'을 실행하면 안됩니다. (다른 사람이 마스터에 변경 사항을 푸시 할 수 없도록하려면 ACL 유형의 작업을 수행 할 수 있지만이 질문의 범위를 벗어납니다.) – cdhowie

+0

Btw. 'master'는 기본 분기 이름으로 동의 한 임의의 이름입니다. 이름을 바꾸거나 삭제하거나 원하는대로 할 수 있습니다. 더 이상의 의미는 없습니다. – poke

관련 문제