ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Git과 Github] Github 사용 Manual 6 - Branch 사용하기 (Branch 정의)
    컴퓨터 알아가기/Git & Github 2023. 6. 20. 19:30
    728x90
    반응형

    지난시간 Github Manual을 1편부터 5편까지 실습으로 따라해 본 사람은 이제 Git과 Github에 대한 전반적인 이해를 할 수 있습니다. 그렇다면 진정으로 Github를 이용하는 목적으로 브랜치(Branch)라는 개념을 추가로 이해한다면 Github 사용법은 다 되었다고 볼 수 있습니다. 좀 더 세밀한 Git 명령어라든지 하는 부분들은 그때 그때 추가로 공부를 하면 될 것으로 보여지네요. 역시 본 Manual을 만들기 위해 참고 강의는 나동빈의 Github 강좌를 기준으로 하고 있습니다. 

     

    ▒ Github Branch  정의

     

    1. GIthub의 Branch 개념

     

    그럼 Github에서 Branch라는 개념을 정립할 필요가 있습니다. 정말 알기 쉽게 자신만의 것으로 개념을 만드는 작업을 할 필요가 있습니다. 

     

    Github에서 Branch는 말그대로 메인줄기가 아닌 별도의 가지에서 작업하는 경우를 말하는데 자동차 공장으로 예를 들면 본사공장에서 차량을 만들기 위해 금형, 부품, 조립, 실험 등을 다 할 수 있지만 다른 지역에 있는 자동차 계열사에서 더 좋은 품질의 부품을 만들어 본사 공장에 납품하여 적용된다면 결과적으로 좋은 자동차가 나올 수 있습니다. 

     

    이러한 개념으로 볼때 본사공장을  Main 또는 Master 브랜치라고 볼 수 있고 계열사를 개발 브랜치라고 볼 수 있습니다. 이러한 개념으로 Github의 Branch 개념을 이해해야 하는데 지난시간까지 작업한 내역은 전부 Main에서 작업한 내역으로 개발회사로 치면 외부에 출시하는 최종 코드내역이라고 볼 수 있습니다. 

     

    하지만 한 사람이 완벽하게 할 수 있는게 아니고 또 많은 팀원이 각자 작업한 내역을 Main에 바로 올리면 작업적 충돌 등이 일어나겠지요. 통제도 되지 않고.

     

    이를 방지하기 위하여 Branch라는 개념을 도입하여 최종 결과물을 이끌어 내는데 있어 원활하게 만들 수 있습니다.

     

    그럼 이렇게 Github에서 Branch를 사용하는 장점으로는 동시에 여러 개발자들이 서로 영향을 받지 않고 개발 업무에 주력할 수 있는 장점이 있습니다. 

     

    2. GIthub Branch Diagram

     

    그렇다면 좀 더 이해를 돕기 위하여 도형으로 나타내 보겠습니다. 

     

    먼저 지금까지 우리는 Main에서만 작업을 해 왔기에 내 PC이든 어디든 로컬저장소에서 작업한 내역을 원격저장소로 보내왔습니다. 참고로 과거 Github 버전에서는 Main을 Master라고 불리웠습니다. 이 모든것을 어찌되었던 하나의 줄기이자 Branch라고 칭합니다. 다음 그림처럼요. 

     

     

    이는 누구의 방해도 받지 않고 자신만의 프로젝트를 할 경우 원격저장소를 사용할 수 있는 방법입니다. 그런데 위  그림에서 1차작업시 또 다른 개발이 필요한 경우 직접작업이 아닌 다른 팀원으로부터 지시를 하거나 도움을 받고자할 경우 Main Branch에 영향을 받지 않고 별도의 작업 Branch를 만들 수 있습니다. 그리고 1차 결과 시점에 통합(Merge)을 할 수 있는거지요. 다음 그림처럼요. 

     

     

    이럴경우 개발브랜치의 이름을 지정하여 만들 수 있습니다. 

     

    브랜치라는 개념을 보면 여러브랜치를 만들수도 있습니다. 다른 팀원은 프로그램의 버그수정을 진행할 수도 있습니다. 이럴 경우 다음과 같이 작동이 되겠지요. 

     

     

     

    하나의 프로젝트를 완성시키기 위하여 상기와 같은 절차가 지속적으로 이루어진다고 보면 되겠지요. 물론 실무에서는 더욱 복잡한 절차와 협업체계가 형성이 되어야 합니다. 아울러 상기와 같은 사고방식은 프로그램 개발시 사용하는 순서도 작성에도 도움이 될 것으로 보여지며 일반 직종에서도 체계적인 흐름에 맞추어 진행이 된다면 큰 실수없이 결과를 도출할 수 있을 것으로 봅니다. 

     

    다음 시간부터 본격적으로 실습을 통하여 상기 개념을 학습해 보도록 하겠습니다.  

     

    반응형

    댓글

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
Designed by Tistory.