2012-11-14 3 views
2

저는 여러 클라이언트에 배포해야하는 iOS가 있습니다. 각 고객은 앱에 약간의 변경 사항 (이미지, 프로비저닝 파일, 앱 이름 등)을 가지고 있습니다. 앱의 95 %는 모든 고객에게 동일합니다.여러 고객을위한 Github 지점

여러 개의 git 저장소 (각 클라이언트마다 하나씩)를 유지하고 싶지 않습니다. 차라리 한 번씩, 각 고객마다 가지를 들고 싶습니다.

저는이 분기점을 처음 사용 했으므로이를 달성 할 수 있는지 알아야합니다.

  1. 일반 이미지/configs/등으로 마스터 브랜치를 만들 계획입니다. 나는 변화가 내가 마스터로 만들 것 할 때
  2. 그런 다음 각 클라이언트
  3. 업데이트에 대한 고객의 이미지/CONFIGS 각 지점/등

을 지점을 만듭니다. 그런 다음 변경 사항을 마스터에서 각 분기로 가져옵니다. 마스터에서 가져올 때 이미지, configs 등이 오버라이드되는 것을 어떻게 멈출 수 있습니까? 각 브랜치에 대해이 작업을 수행 할 때 무시할 수있는 특정 파일을 정의 할 수 있습니까?

내가해야 할 일을 관리하는 더 좋은 방법이 있습니까?

+0

앱 자체에 관리자 인터페이스를 제공하여 클라이언트가 git을 통해 해결하지 않고 사용자 정의 할 수 있습니까? – SenG

답변

2

master을 가져온 다음 rebase 브랜치 위에 브랜치를 가져와야합니다.

구체적인 예를 보려면 "Git: How to rebase many branches (with the same base commit) at once?"을 참조하십시오.

보안을 강화하려면 파일에 병합 드라이버 "keepMine"을 추가하고 각 분기에있는 .gitattributes 파일에 해당 병합 드라이버를 선언 할 수 있습니다.
"How do I tell git to always select my local version for conflicted merges on a specific file?"을 참조하십시오.

클라이언트 분기의 SHA1이 변경되므로 강제로 클라이언트 저장소로 푸시해야하지만 클라이언트가 측면에서 파일을 변경하는 것이 아니기 때문에 문제가되지 않습니다.

+0

완벽. 내가 필요한 것. –