2017-10-11 3 views
0

우리는 스테이징 환경과 프로덕션 환경을 가지고 있습니다. 우리는 새로운 연속적인 통합 정의/빌드/릴리즈 등을 시험하기 위해 준비 단계에서 원하는대로 할 수 있습니다 ... 각 환경에는 git repo가 ​​있습니다.스테이징 환경에서 미러 생성 git repo

현재 두 개의 로컬 저장소가 있습니다. 스테이징 용 1 개와 프로덕션 용 1 개 빌드/릴리스 정의를 변경하는 것이 종종 아니기 때문에 우리가 프로덕션에서 작업하는 시간의 99 %를 차지합니다. 그러나 우리는 현재 변경 작업을하고 있으며 프로덕션 코드로 스테이징 git repo 코드를 업데이트해야합니다.

그래서 기본적으로 로컬 생산 repo 디렉토리 (모든 git 관련 파일 제외)의 코드를 스테이징으로 복사하여 붙여 넣은 다음 서버 준비로 푸시합니다.

이것은 절름발이로, 더 이상이 작업을 수행하고 싶지 않습니다. 그래서,보다 효율적인 설정은 무엇입니까? 이상적으로 스테이징은 생산을 '미러링'하는 것일 뿐이지 만 스테이징에서 변경된 사항이 프로덕션에 영향을 미치기를 원하지는 않습니다.

답변

2

스테이징과 프로덕션을위한 두 개의 별도 리포지토리를 가지고 있다는 아이디어를 모르겠지만 그러한 설정을 매우 자주 (또는 심지어 가능하게) 보지 못했습니다. 두 제품 모두에서 동일한 제품에 대한 버전 코드를 작성하는 경우, 여기서 명백한 수정은 모든 제품에 단일 레포를 사용하는 것입니다. 이 단일 저장소에는 스테이징 및 프로덕션 지점이 있으며 이제 기능을 스테이징에서 프로덕션으로 또는 그 반대로 이동해야하는 경우 손끝에서 병합 및 리베이스하는 것이 좋습니다.

+0

정말 CI/서버 구성 테스트를위한 것입니다. tfs 버전, 네트워킹 설정 ... 등등을 업데이트하십시오. Git 설정은 다른 팀에 영향을 미칠 수있는 변경 사항을 만들 때만 사용됩니다 ... 그래서이 설정은 일반적인 작업 과정의 일부가 아닙니다. – jparram

+0

@jparram 저는 설치의 복잡함에 익숙하지 않지만, Git의 동일한 저장소에있는 두 브랜치간에 정보를 교환해야하는 경우에는 비교적 간단합니다. _different_repos의 두 가지 지점에서 동일한 작업을 수행해야하는 경우에는 오렌지에 사과가됩니다. 그러면 현재있는 곳에서 대략적으로 끝나거나 수작업으로 복사하거나 동일한 작업을 수행하는 스크립트를 작성할 수 있습니다. –

+0

시간 내 주셔서 감사합니다. 두 번째 복사 및 붙여 넣기를 한 후 필자는 스크립트를 작성했지만 ... 다른 repos가 혼합되어있는 경우 다른 옵션이 있는지 궁금합니다. – jparram

0

당신이 말한 바에 따르면, 두 가지 주 가지, 즉 devmaster으로 1 개의 repo를 만들어야합니다.

복사 및 준비에 현지 생산의 repo 디렉토리 (마이너스 모든 자식 관련 파일)의 코드를 붙여 넣기 한 다음 서버를 준비에 밀어 : 코드를 사용할 때마다, 예를 들어, 당신은 있다고한다.

대신, 분기 준비가 master 코드와 통합해야하므로 staging-test 다음 git pull --rebase origin master에 지점 staging에서 체크 아웃.

당신은 GitFlow에서 좀 걸릴 수 있습니다 : https://www.atlassian.com/git/tutorials/comparing-workflows

0

는 그런 다음 해당 지역의 준비의 repo로 전환하여 현지 생산의 repo에 자식 푸시에 자식 후크를 추가 할 수 있습니다, 당신의 현지 생산의 repo를 가져옵니다, 그리고에 밀어 원격 스테이징 저장소