2011-02-03 1 views
5

나는 Git 로의 이전을 희망하는 SVN 사용자입니다. 나는 하루 종일 설명서와 튜토리얼을 읽었으며 아직 답이 없습니다. 나는이 워크 플로는 의미가됩니다 알고,하지만 여기 내 상황, 그리고 내가 내 워크 플로우에서 좀하고 싶습니다하지 않습니다 : 모든 워크 스테이션 내 웹 사이트의 여러 버전을 만들려면 어떻게해야합니까 내 힘내 저장소와 지점을 구성해야합니까?

  • 3 버전에서 로컬 개발,

    • 여러 개발자 웹 사이트의 : 데브, 스테이징, 생산

    여기 내 꿈 :

    개발자가 자신의 지점에 로컬로 작동이 "developer1"자신의 로컬 컴퓨터에, 테스트, 그리고 자신의 변경을 커밋 말한다.

    다른 개발자가 이러한 변경 사항을 자신의 분기로 가져올 수 있습니다. Merge developer1 -> developer2.

    공개적으로 작품을 볼 준비가되면 Dev, Staging 또는 Production에 "푸시"하고 싶습니다.

    git push origin staging 
    

    아니면

    git merge developer1 staging 
    

    는 잘 모르겠어요. 내가 말했듯이, 나는 아직도 힘내게 새거야.

    여기 내 주요 질문은 다음과 같습니다

    • 내 웹 사이트 (데브, 스테이징, 생산)를 수행 저장소해야? 그리고 그들은 새로운 변화의 수령자가되기 위해 "베어"되어야만합니까?

    • 하나의 저장소 또는 여러 개의 분기가 필요한 저장소를 원하나요?

    • 이 말이 맞나요? 아니면 잘못된 경로에 있습니까?

    많은 자습서를 읽었으므로 누군가가 내 특정 상황에서 나를 도울 수 있기를 정말로 바랍니다. 정말 고마워!

  • +0

    개발자가 자신의 통합으로서 master 브랜치를 유지하도록하는 팁이 있습니다. dev에서 분기하고 거기에 dev 작업을하지 마십시오. 대신 dev에 작업을 할 별도의 지점을 만들고, dev에 커밋하고, master에 스위치를 옮긴 다음 dev에서 cherry-pick을 선택하십시오. 나는 그 흐름을 수행하지 않을 때 이상한'detach_head' 문제에 부딪쳤다. 하지만 svn repo를 작동하고 있으므로, 그 중 하나와 관련이 있는지 확실하지 않습니다. – hellatan

    답변

    3

    내가 추천하는 기사는 A Successful Git Branching Model입니다. 당신이 설명하는 상황과 더 많은 것을 다룹니다.

    +0

    그래, 나는 그걸 읽었다. 유일한 것은 원격 서버에 변경 사항을 게시하는 것에 대해 이야기하지 않으며 저장소가 호스팅되는 위치에 대해 실제로 말하지 않는다는 것입니다. –

    +0

    @aaron : 그것들은 본질적으로 사소한 세부 사항입니다. 중요한 저장소가 모두있는 중앙 리포지토리가 있는지 확인한 다음 필요한 모든 항목을 사용합니다 (푸시하고 푸시). – Cascabel

    +0

    멋진 프리젠 테이션 표시. –

    0

    분산성에 대해 기억하십시오. Subversion과 달리 개발자 체크 아웃은 업무용 사본이 아닌 리포지토리입니다. 정규 업무 흐름에서 그들은 자신의 저장소에 대한 변경 사항을 커밋하고 개인 분기를 만들고 조작합니다. git push은 로컬 브랜치에서 "주"원본 저장소 (웹 호스팅에있을 것입니다)로 커밋을 전송하는 데 사용할 수 있습니다. . 따라서 각 개발자는 자신이 원하는 모든 지점을 가진 로컬 개인 레포를 갖게됩니다. origin repository는 세 가지 브랜치를 갖는다. 개발자는 기원 repo (일부 현지 지사) 및 git push 출처 repo에 적절한 작업에 git pull 다른 사람들이 일할 것입니다.

    0

    @ Greg가 제안했듯이, nvie의 Successful Git Branching Model을 따르는 것이 좋습니다.거기에서, 웹 사이트에 git을 사용하는 방법에 대해 읽고, 브랜칭 모델을 염두에두고 구현하는 방법을 제안합니다. 한마디로

    :

    • 이 자식이 두 번째 기사
    • 에서 제안하는 방식으로 준비 서버에 릴리스 지점을 밀어 수 있도록 시스템을 설정합니다 T에 모델을 분기 힘내에 따라
    • 동일한 스테이징 서버 설정에 따라 master 브랜치를 프로덕션 서버로 푸시 (push)하십시오.