Git을 사용하여 여러 버전의 웹 애플리케이션 관리


12

우리는 모두 동일한 기반을 가진 앱 제품군을 보유하고 있습니다. 지금까지 나는이 기반을 개발해 왔으며 Git 워크 플로우는 매우 간단했습니다.

  • 개발은 develop지점 에서 이루어집니다
  • 새로운 기능이 name-of-the-feature지점 에서 개발되었습니다
  • 릴리스는 release-**지점 에서 이루어집니다

지금까지 코드는 가족의 모든 앱에서 동일했습니다. 그들이 공유하는 기본이 이제 완성되었고 지금부터 코드가 모든 앱마다 다르다고 가정 해 봅시다.

git 과 동일한 기반을 가진 이 여러 응용 프로그램 을 어떻게 처리 해야하는지 잘 모르겠습니다 .

  • 그들 각각은 자신의 자식 프로젝트를 해야합니까?
  • 그들은 같은 프로젝트에 있어야하지만 각각 자체 지점 에 있어야합니까 ?

요점은 : 별도의 프로젝트 에 적용하면 앱 기반 에서 수행 된 모든 수정 사항 이 각 앱에서 반복되어야합니다. git에 익숙 하지는 않지만 각 프로젝트를 지점 에 저장 하면 기본 수정 사항을 각 앱과 병합 할 수 있습니까?

이런 상황을 경험 한 사람이 있습니까? 진행 방법을 잘 모르겠습니다.

감사!

편집 내가 버전을 말할 때 나는 버전 번호를 의미하지 않았다. 실제로 동일한 기반을 공유하는 다른 앱입니다.

답변:


7

기본 앱을 자체 리포지토리에 그대로두고 해당 리포지토리에서 컴파일하는 jar에 따라 새 프로젝트를 만듭니다.

Git 브랜치는 여러 앱을위한 것이 아닙니다. Git은 각 프로젝트 또는 관련 프로젝트 제품군에 대해 하나의 저장소를 사용하는 것을 선호합니다. 브랜치는 저장소를 떠나지 않고 완전히 새로운 프로젝트를 만들 수있는 것이 아니라 기능을 분리하여 개발할 수 있도록합니다.

코드를 공유하는 여러 개의 앱을 원하지 않습니다. 이는 유지 관리의 악몽입니다. 중앙 저장소에서 각 지점을 개발할 것을 제안하는 경우 각 앱에 변경 사항을 전파하기 위해 많은 합병이 진행됩니다. 하나의 개별 라이브러리에 의존하고 Apache Maven 과 같은 것을 사용 하여 프로젝트 종속성을 끌어 내는 것이 훨씬 쉽습니다 .


공유되는 코드의 대부분은 GWT 코드 (보기, 서비스 등)입니다. jar 라이브러리로 추출 할 수 있습니까? 아니면 서버 측 자바 코드가 가능합니까?
João Daniel

뷰 요소는 추출 할 수 있지만 항아리에는 없습니다. 예를 들어, 모든 페이지에서 자바 스크립트를 단일 파일로 추출한 다음 각 프로젝트에 포함시킬 수 있습니다. JSP 공통 코드는 JSP 태그로 추출해야합니다. 아마도 전체 페이지를 가져올 필요는 없지만 프로젝트를 알지 못하므로 잘못 될 수 있습니다.
Michael K

이 접근법에 대해 어떻게 생각 하십니까 : stackoverflow.com/a/2540471/2615737 ? 합리적인 솔기 ...
Francisco Corrales Morales

나는 그것이 동일한 유스 케이스라고 생각하지 않습니다. 이 답변은 매우 다른 두 가지 버전의 동일한 앱을 다루는 반면이 질문은 내가 완전히 다른 애플리케이션으로 보는 것에 관한 것입니다. "약간 다른"경우에도 브랜치를 전혀 사용하지 않는 것이 좋습니다. 그러나 뷰 XML이 관련된 경우 Android에서 라이브러리를 분리하는 기능을 고려하기가 어렵습니다. 응답자가 자신의 상황에 문제가 있다고 생각하지 않은 것 같습니다.
Michael K

6

앱이베이스 자체를 수정하지 않으면베이스를 자체 리포지토리에 두는 것이 좋습니다. 그런 다음 각 개별 앱에 대한 새 저장소를 작성하고 기본을 git 서브 모듈 로 추가하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.