2011-11-22 2 views
4

나는 우리 팀을위한 개발 프로세스를 잠식하려고합니다.개발 프로세스, 배포, GitHub

우리는 3/4의 개발자가 언제든지 우리 코드 기반에서 작업하고 있습니다.

우리는 GIT를 사용하기 시작했습니다. 아이디어는 실제 작업 이상의 것입니다. 그런 다음 마스터 브랜치를 분기합니다.

누구나 서버에는 자체 개발 환경이 있으며, 우리는 항상 마스터 브랜치 사본이어야하는 하나의 스테이징 환경을 가지고 있습니다.

개발자는 로컬에서 개발 한 다음 마스터 분기로 다시 병합합니다. 그러면 마스터 분기에 병합되어 변경 내용을 준비 서버 (I want to set up something like this)로 푸시해야합니다.

모두 승인 된 경우 변경 사항을 실시간으로 복사해야합니다. 어떻게 든 정확히 자동화하고 싶습니다. 우리는 GitHub을 사용하고 있으므로 자동 배포 스크립트가 있습니다.

우리는 라이브 서버가 1 개 밖에 없기 때문에 master 브랜치의 변경된 파일 만 라이브 서버에 배포 할 수 있다면 좋을 것입니다.

아이디어가 있습니까?

이 접근 방식이 효과적입니까?

기타 의견/경고?

이와 같은 작업을 수행하는 데로드 밸런서가 필요합니까?

답변

4

내 회사 다음으로 가장 가까운 this blog입니다.

생산을 위해 분기를 만듭니다. 제 경우는 웹 개발을위한 것입니다. 우리가

단계는 마스터 이런 식으로

git checkout -b feature/featureA 
git checkout -b bug/B 

에서

개발자 포크 그들의 기능/버그, 우리는 이미 출시 된 라인과 신선한 코드를 가지고 있습니다. 스테이징 서버에서는 테스트 브랜치를 사용합니다. 어떤 기능 테스트를 진행하고자 할 때 그래서, 우리가

핫픽스를 처리 릴리스 가지가 있습니다
git checkout testing 
git pull 

모든 핫픽스는이에 병합합니다 사용 준비 서버에서 해당 분기

에 병합합니다 분기하기 전에 병합하십시오. 아이디어는 병합 문제가 발생하면, 그것은 단지 일시적인 대한

git reset --hard HEAD^ 

같은 명령을 사용하는 마스터하기 전에 릴리스 브랜치는 어떤 커밋을 포장 것입니다.

git checkout master # Go to Master 
git checkout -b feature/New # New branch 

이메일이 중요한 버그

git stash 
git checkout master 
git checkout -b hotfix/a 

생산에서 일을

git commit 
git checkout release 
git merge hotfix/a 
git checkout master 
git merge release # In case that you want to pack all ready to production 

을을 해결하기 위해 보스에서 온 내 전체 작업 단계 보자

git tag -d previous 
git tag previous 
git pull 

죄송합니다. 새로운

git checkout master 
git pull 

내 일을 계속 합병 커밋

git checkout previous 

작동하지

git checkout feature/New 
git stash pop #Restore workspace 
git commit 
git checkout testing # ready to mix a test 
git merge feature/New 

이 벡은

git checkout release 
git merge feature/New 

있는 기능을 해제 준비 시험 배치에있는 모든 것들을 배치 할 준비를하십시오. 따라서 모든 준비 기능을 릴리스 분기로 병합하면 이제 최종 테스트를 수행 할 수 있습니다.

모든 것을 지금 생산을 갈 때, 우리가 할

git checkout testing 
git merge master 
git checkout release 
git merge master 

자동화 스크립트

난 당신이 코드를 커밋 후 인맥에 대한 .git/hooks/post-commit.sample에 약간의 스크립트를 보일 수 있습니다 생각하십니까? 어쨌든, 나는 결코 그것을 사용하지 않는다.

+0

감사합니다. 귀하의 게시물과 내가 링크 한 블로그를 기반으로 몇 가지 적응을했습니다. – iKode

관련 문제