git을 사용하여 웹 개발을위한 워크 플로우를 고민하고 정리 한 끝에 마지막 단계에서 스테이징 서버를 추가하는 작업을했습니다. 우리는 지역에서 개발/테스트를하고 repo로 밀어 넣습니다. 이제 다른 부서의 사람들이 놀 수 있고 물건을 깨지 않고 새로운 것을 시험해 볼 수 있도록 샌드 박스가 있어야합니다.git 브랜치 배포
원격 저장소에는 2 개의 장기 실행 분기 (nvie 분기 모델의 정신에서), 마스터 및 개발이 필요합니다.
우리는
등 site.com의 docroot에로 마스터 체크 아웃 마스터로 발전 하나 개의 repo에 밀어 test.site.com의 docroot를에 개발 브랜치를 체크 아웃하고, 준비가되면, 병합 할 수 있어야합니다 서버 ...
git init
git add .
git commit -m "Initial commit"
git checkout -b "develop"
그리고 우리의 로컬 시스템에
...git clone [email protected]:/repos/repo1.git
???
git push origin/develop (??? Updates test.site.com docroot)
그리고 다시 서버에 코드 라이브 만들
,536 감사 물음표 또는 대체 제안git checkout "master"
git merge develop (??? Updates site.com docroot)
git checkout -b "develop"
그리고 로컬
git pull
도움말.
편집 : 지금까지 몇 가지 답변을 실험 중입니다. 중간에 완전히 해키 한 아이디어가 떠올랐다. 나는 공유 할 것이라고 생각했다.
모두를 다룰 수있는 수신 후크가 하나있다.
베어 레포를 복제하고 추적합니다. 푸시 (push)가 원점/개발로 진행됩니다.
포스트 - 수신 - 설정 GIT_WORK_TREE을 test.site.com에, 체크 아웃,
커밋 메시지는 "merge_master"를 포함하는 경우를 개발 -f, docroot를
git checkout master
git merge develop
git checkout -f master (this would be for hotfixes)
병합을 site.com하는 GIT_WORK_TREE을 설정 마스터를 개발하여 지역으로 끌어들이십시오.
먼지가 묻은 후 difflog로 이메일을 보내고 손을 짜내고 강한 것을 한 모금냅니다.
몇 가지 방법으로 깨뜨릴 수 있습니까?
본 적이 있습니까? http://nvie.com/posts/a-successful-git-branching-model/ – kan
그래, 처음에는 어떻게 처음에 git에 소개 되었습니까. 브랜치는이 시점에서 배포하는 것만 큼 문제가되지 않습니다. 나는 장기간에 걸친 두 가지 지점의 중심 아이디어를 좋아했습니다. – James