2012-04-18 5 views
0

내 프로젝트의 두 가지 주요 지점 - 웹 응용 프로그램의 "프로덕션"버전은 master이고 응용 프로그램의 "테스트"버전은 X 지점입니다.지점 특정 커밋을 표시하고 병합을 방지하려면

배포 설정, 데이터베이스 구성, Google 웹 분석 ID 등이 서로 분리 된 코드 꼬집음을 유지해야하며 git merge X이 마스터에서 발생하거나 분기에서 git merge master이 실행될 때 병합되지 않도록해야합니다. X.

신뢰할 수있는 방법이 있습니까? 예 : 일부 커밋을 "이 분기에만 해당"으로 표시 하시겠습니까?

답변

3

간단한 대답 :별로 중요하지 않습니다.

대신, 다음 중 하나를 수행 할 수 있습니다 :

  • 체리 각 (키워드 예를 들면 커밋 메시지)
  • 이 커밋하지 않고 두 번째 지점을 확인하고 정기적와 병합 표시된 사람을 제외하고, 커밋 선택 그들을 포함하는 지점. "나쁜 커밋 무료"지점을 마스터와 새 지점으로 병합하십시오.
+0

감사합니다. 그래서 나는 제 2의 선택에 의해 나는 ... 6 가지를 볼 필요가 있다는 것을 정확히 이해합니까? M = 마스터 및 D = 개발 가정, D <= ConfigD + DClean, M <= ConfigM + MClean, 그래서 DClean에서 개발하고 D와 MClean으로 병합 하시겠습니까? 필자는 ConfigD를 D로 병합 할 때마다 궁극적으로 충돌을 일으킬 것이라고 생각합니다. – alexandroid

+0

정직하게 말하면, 나는 체리 선택 솔루션을 선호합니다. 훨씬 더 간단해질 것입니다. http://wiki.koha-community.org/wiki/Using_Git_Cherry_Pick – gracchus

1

이상적은 아니지만 제 프로젝트 중 하나에서 비슷한 시나리오가 있습니다. 내 솔루션 대신 3 개의 지점을 유지 관리되었습니다 - 마스터, devel 및 구성. config 브랜치는 devel의 일부 지점에서 분기하고 구성 설정 만 포함합니다 (따라서 이름). 그런 다음 마스터와 개발자 사이에서 개발하고 병합 할 수 있습니다. 테스트 할 때 rebase를 사용하여 config 브랜치를 devel의 끝으로 이동시킵니다.

정기적으로 테스트하는 것보다 devel에 대한 모든 커밋을 테스트하기를 좋아하는 사람이라면 특히 조금 성 가시지만, 적어도 기능적입니다.

+0

네, 나뭇 가지가 더 많은 것 같아요. 어쩌면 마스터와 개발을위한 별도의 configs를 갖고 싶을 것입니다 ... 감사합니다! – alexandroid

관련 문제