2016-07-21 1 views
0

내가하고 싶은 일은 원격 서버를 설정하여 git으로 코드를 작성하는 것입니다. 나는 동시에 다른 버전을 제공하기 위해 모든 브랜치 (마스터 포함)에서 다른 작업 공간을 생성하려고합니다. 왜? 프로덕션 환경에 웹 페이지를 업로드하기 전에 테스트 용 로컬 웹 서버에 git server를 구성하고 있으며 개발자가 코드를 수정해야 할 때 자신의 작업 공간으로이 개발을위한 분기를 생성하려고합니다. 이 방법으로 LAN의 모든 컴퓨터와 향후 실행되는 개발자 버전의 안정 버전에 액세스 할 수 있습니다. git을 사용하여 가능합니까? 아니면 버전 관리 소프트웨어를 변경해야합니까?다른 지점마다 작업 공간이있는 힘내

답변

1

여러분의 웹 서버에있는 각 현재 브랜치의 작업 디렉토리 ("작업 영역"이라고 부르는 것)를 체크 아웃해야하므로 사람 (개발자, 테스터)이 각 지점.

쉽게 가능합니다. git branch --no-merged master은 모든 "열린"가지 즉, master으로 병합되지 않은 가지를 제공합니다. git branch --list --no-merged master FEATURE-*으로 분기 이름을 필터링하면 "FEATURE-"로 시작하는 모든 병합되지 않은 분기를 제공합니다.

유닉스에있는에 거기에서, 경우 :

cd somecurrentworkingdirectory 
for branch in `git branch --no-merged master` ; do 
    echo Creating $branch 
    git clone git://source/repos/xyz /whereveryourwebserveris/branches/$branch -b $branch 
    ... do more stuff to get it working on your webserver ... 
done 

또는 Windows에서와 다른 스크립트 언어를 사용하는 경우와 유사합니다.

또한 Jenkins와 같은 기존 솔루션이 있습니다 ("지속적인 통합", "지속적인 배포").

+0

나는 젠킨스를 점검 할 것입니다, 아마도 이것은 제가 찾고있는 해결책 일 것입니다. 고마워요! +1 –

0

가능하지만 이해가되지 않습니다. git을 사용하면 git push를하지 않기 때문에 모든 변경 사항은 로컬 저장소로 제한됩니다. git commit을 사용하면 변경 사항을 로컬에 저장합니다. 그래서 모든 브랜치를 수정 한 다음 변경 사항을 커밋 할 수 있습니다. 올바른 경우 원격 서버로 푸시 할 수 있습니다. 그렇지 않으면 이전 버전의 파일을 복원 할 수 있습니다.

+0

당연히, 나는 서버 구성에 대해서 생각하고 있었고, 작동하지는 않았다. 개발자가 올바른 브랜치로 git push를하면 브라우저를 통해 모든 브랜치와 마스터에 코드를 액세스 할 수 있습니다. –

관련 문제