git을 사용하여 테스트 환경과 프로덕션 환경을 배포하는 데 약간의 의구심이 있습니다. 선배님들께서 명확한 길을 제시해주셨으면 좋겠습니다.
지금 하고 있는 일 : (첫 번째 방법)
코드를 로컬에서 작성하고 완료 후 bitbucket에 푸시합니다.
그런 다음 테스트 환경의 bitbucket에서 테스트 브랜치를 끌어옵니다.
테스트에 문제가 없으면 bitbucket에 풀 요청을 생성하세요. 테스트 브랜치를 마스터 브랜치와 병합합니다.
프로덕션 중인 bitbucket에서 마스터 브랜치를 가져옵니다.
두 번째 방법
저도 이전에 많은 글을 읽었고, 이런 방법을 사용하는 분들도 계십니다.
테스트 환경과 프로덕션 환경에 각각 git 저장소를 구축합니다.
그런 다음 로컬 개발 후 테스트를 위해 테스트 환경으로 직접 푸시하고,
그런 다음 프로덕션 환경으로 푸시하여 실행합니다.
두 가지 방법 중 어느 것이 더 좋은지 모르시나요? 나는 지금 이것에 조금 붙어 있습니다.
어떤 방법이 더 과학적이고 효율적인지 모르겠습니다.
지금의 방식이 좀 번거롭다는 느낌을 늘 갖고 있어요. 위의 비트버킷을 push할 때마다 테스트 서버에 로그인해서 pull을 하게 됩니다. 비트버킷으로 병합한 다음 프로덕션 환경의 서버에 로그인하여 코드를 가져와야 합니다.
그렇다면 두 번째 방법을 사용한다면 bitbucket은 전혀 불필요한 걸까요? .
또한 첫 번째 방법을 사용하는 경우 코드를 bitbucket에 푸시할 수 있어야 합니다. bitbucket의 개발 브랜치가 변경되면 테스트 환경이 자동으로 bitbucket의 개발 브랜치를 동기화합니다. bitbucket의 기본 분기가 업데이트되면 프로덕션 환경은 bitbucket의 기본 분기 코드를 자동으로 동기화합니다. (이 작업은 git hock을 사용하여 수행할 수 있어야 합니다.) 그런데 이렇게 해도 테스트 환경과 프로덕션 환경 서버에 git Warehouse를 구축해야 합니까?
프로덕션 환경과 테스트 환경이 비트버킷 코드를 자동으로 동기화할 수 있다면 어떻게 해야 할까요?
버전 관리(git/svn)와 배포는 적절하게 격리(분리)되어야 합니다.
테스트 시스템과 배포 시스템은 타겟 코드의 브랜치와 버전 번호만 알면 됩니다.
배포 시스템은 모든 브랜치에 모든 버전의 코드를 배포할 수 있어야 합니다(온라인 상태여야 하는 코드가 반드시 최신일 필요는 없음).
프로덕션 환경에서는 마스터 브랜치를 배포하고, 테스트 환경에서는 마스터에서 개발 브랜치 등의 브랜치를 체크아웃하고, 마스터 브랜치에서 기능 등의 새로운 기능을 체크아웃한 후 개발 병합 기능 브랜치를 사용하여 테스트합니다. 테스트 후 마스터 병합 기능 분기를 사용하세요. 병합 마스터 코드를 매일 개발하여 최신 상태로 유지하세요.