Tools/VCS

Git branch 간단한 전략

허니몬 2013. 12. 7. 01:25
  • 참고 : A successful git branching model

  • 깃git의 기본 브랜치는 master에서 시작합니다.

  • master는 태그Tag를 기록하기 위한 기본브랜치로 사용됩니다.
  • 개발을 위해서는 develop 브랜치를 생성합니다.

    개발자들이 실제로 소스코드를 공유하는 브랜치가 됩니다.

    //master 브랜치에서 develop 브랜치를 생성합니다.
    (master)$ git checkout -b develop
    (develop)$
    
  • 소스코드를 push하기 전에 하는 기본적인 동작방식은 다음과 같습니다.

    1. 소스코드를 스태징 상태로 변경
      (develop)$ git add .
      
    2. 소스코드를 커밋함 - 가급적이면 개발한 내용을 상세기록하시는 걸 추천함
      (develop)$ git commit
      이후 커밋메시지 등록
      //혹은
      (develop)$ git commit -m '소스코드 중 친구목록 반환시 기준변경'
      
    3. 원격저장소(remote repository)에서 당겨오기(pull)
      (develop)$ git pull origin develop
      
    4. 별다른 충돌conflict가 발생하지 않았다면 push
      (develop)$ git push origin develop
      
  • 기능개발시 브린치 생성

    1. 브랜치 생성 - 웹 애플리케이션 설정을 하는 단계의 브랜치
      (develop)$ git checkout -b feature/web-application-config
      (feature/web-application-config)$
      
    2. 소스코드 변경작업 후 스태징 상태로 변경
      (feature/web-application-config)$ git add .
      
    3. 소스코드 커밋
      (feature/web-application-config)$ git commit -m '웹 애플리케이션 설정완료 web.xml 등 설정'
      
    4. develop 브랜치로 체크아웃
      (feature/web-application-config)$ git checkout develop
      (develop)$
      
    5. feature/web-application-config 브랜치 병합merge
      (develop)$ git merge feature/web-application-config
      
    6. feature/web-application-config 브랜치 삭제
      (develop)$ git branch -d feature/web-application-config
      

이런 형태로 기능개발하실 때에 기능 브랜치(feature)를 생성해서 작업하신 후에 커밋하시고 develop 브랜치로 체크아웃하셔서 머지merge를 해주시면 큰 충돌없이 develop에서 소스코드를 유지하실 수 있을겁니다.

깃에 익숙치 않으시다면, 소스트리sourcetree와 같은 GUI 클라이언트를 사용하시는 것을 추천드립니다.