[ Git 사용법 ] GitHub Flow 📚 🙄 📚

2022. 1. 24. 10:18·개발중/Git
728x90
반응형

GitHub Flow ?

 

✅ GitHub Flow ?

GitHub Flow 는 Git Hub의 단점으로 여겨지는 "관리해야 하는 브런치가 많다" 라는 이유로 인해서 등장했다.

Git Hub 가 복잡하다 여겨져 GitHub Flow 를 사용한다고 한다.

GitHub Flow 는 흐름이 단순하다.

흐름이 단순한 만큼 룰도 단순하다.

master 브런치에 대한 role만 정확하다면 나머지 브런치들에는 관여를 하지 않는다.

그리고 pull request 기능을 사용하도록 권장을 한다.

 

 

✅ GitHub Flow 특징

release 브런치가 명확하지 않은 시스템에서 사용에 맞게 되어있다.

여기에는 GitHub의 서비스 특성상 릴리즈라는 개념이 없는 서비스를 진행하고 있어서 그런 것으로 보이며,

웹 서비스들이 릴리즈라는 개념이 없이지고 있으니 사용하기 편할 것으로 보인다.

 

✅ GitHub Flow 사용법

master 브런치는 어떤 때든 배포가 가능하다.

master 브런치는 항상 최신의 상태이며,

stable 상태로 Product에 배포되는 브런치이다.

master 브런치에 대해서는 엄격한 role를 주어 사용한다.

새로운 일을 시작하기 위해 브런치를 master에서 딴다면 이름은 어떤 일을 하는지 명확하게 작성한다.

git flow 와는 다르게 feature 브런치나 develop 브런치가 존재하지 않는다.

 

그렇기에 새로운 기능을 추가하거나 버그를 해결하기 위한 브런치의 이름은 자세하게 어떤 일을 하고 있는지에 대해서 작성해야 한다.

( Github 페이지에서 보면 어떤 일들이 진행되고 있는지를 확인하기 쉽게 )

 

원격지 브런치로 수시로 push를 한다.

 

git flow 와 가장 상반되는 방식이다.

항상 원격지에 자신이 하고 있는 일들을 올려 다른 사람들도 확인할 수 있도록 해준다.

 

이 방법의 좋은 점은 하드웨어에 문제가 발생하여 작업하던 부분이 없어지더라도

원격지에 있는 소스를 받아서 작업을 할 수 있도록 해준다.

 

피드백이나 도움이 필요할 때, 그리고 머지 준비가 완료되었을 때는 pull request를 생성한다.

pull request 는 코드 리뷰를 도와주는 시스템이다.

그렇기에 이것을 이용하여 자신의 코드를 공유하고, 리뷰를 받을 수 있도록 한다.

 

곧장 product로 반영이될 기능이기에 이해관계가 연결된 사람들과 충분한 논의 이후 반영하도록 한다.

기능에 대한 논의 마무리 후 리뷰와 테스트까지 끝난 후 master로 머지한다.

 

master로 머지되고 푸시되었을 때는 즉시 배포되어야 한다.

GitHub Flow의 핵심인듯한 master로 머지가 일어나면 hubot을 이용하여 자동으로 배포가 되도록 설정해놓는다.

 

 

✅ GitHub Flow 장점

브런치 전략이 단순하다.

처음 git을 접하는 사람에게 정말 좋은 시스템이 된다.

Github 사이트에서 제공하는 기능을 모두 사용하여 작업을 진행한다.

코드 리뷰를 자연스럽게 사용할 수 있다.

CI가 필수적이며, 배포는 자동으로 진행할 수 있다.

Github가 작업을 할 때 이렇게 작업하고 있다.

 

 

✅ GitHub Flow 단점

CI (지속적 통합) 과 배포 자동화가 되어있지 않은 시스템에서는 사람이 관련된 업무를 진행한다.

많은 것들이 올라오기 시작하면 관리가 어렵다.


 🧡 글이 도움이 되었다면 좋아요와 구독 눌러주세요 💛 


 

비전공자 개발자들을 대상으로 인터뷰를 진행했어요 아래 자료들에서 얻을 수 있는 정보는 #개발자면접후기 #개발자책추천 #국비교육을 받았나 ? #취업까지 얼마나 걸렸나 #비전공자인데 개발직은 할만한가 ? #전전공이 개발에 도움이 되나요? 등등 케바케 질문들로 구성된 인터뷰입니다. 도움이 되었다면 좋아요 🧡궁굼한 점이 있다면 댓글 💛


728x90
반응형
저작자표시 (새창열림)

'개발중 > Git' 카테고리의 다른 글

[ Git 사용법 ] SSL 처리 📚 🙄 📚  (0) 2022.01.24
[ Git 사용법 ] 사용자 정보 설정 📚 🙄 📚  (0) 2022.01.24
[ Git 사용법 ] Git 과 SVN 의 차이점 📚 🙄 📚  (0) 2022.01.24
[ Git 사용법 ] 지역 저장소와 원격 저장소의 차이 📚 🙄 📚  (0) 2022.01.24
[ Git 사용법 ] local / remote 저장소 간의 흐름 📚 🙄 📚  (0) 2022.01.24
'개발중/Git' 카테고리의 다른 글
  • [ Git 사용법 ] SSL 처리 📚 🙄 📚
  • [ Git 사용법 ] 사용자 정보 설정 📚 🙄 📚
  • [ Git 사용법 ] Git 과 SVN 의 차이점 📚 🙄 📚
  • [ Git 사용법 ] 지역 저장소와 원격 저장소의 차이 📚 🙄 📚
Binsoo
Binsoo
내 트러블 슈팅
  • Binsoo
    정수빈 기술블로그임.
    Binsoo
  • 전체
    오늘
    어제
    • 빈수 개발자 개발 일기 (939)
      • 개발중 (635)
        • Spring Boot (95)
        • Spring Security (2)
        • Spring Batch (6)
        • Spring Boot & Redis (13)
        • Java Persistence API (JPA) (28)
        • Web (42)
        • Rest Api (7)
        • Spring Concurrency Control (3)
        • Redis (8)
        • Kubernetes (k8s) (4)
        • MYSQL (35)
        • AirFlow (15)
        • Docker (2)
        • Git (22)
        • Linux (9)
        • JSON Web Tokens (JWT) (4)
        • Troubleshooting (88)
        • Swagger (0)
        • Vue.js (52)
        • Java (74)
        • html (12)
        • C (5)
        • jQuery (15)
        • JavaServer Pages (JSP) (17)
        • Arduino (1)
        • JavaScript (35)
        • Amazon Web Services (AWS) (11)
        • Algorithm (9)
        • 참고 기능 (18)
        • mongo (2)
      • PROJECT (27)
        • 스프링부트+JPA+몽고 API 개발 (3)
        • MINI (2)
        • 게시판 (3)
        • vue 프로젝트 (1)
        • JPA 사이드 프로젝트 기록 (17)
      • TEAM STUDY (156)
        • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (8)
        • 한 권으로 읽는 컴퓨터 구조와 프로그래밍 (12)
        • NAVER DEVELOPER (4)
        • LINUX (23)
        • PYTHON (19)
        • SERVER (8)
        • 알고리즘 코딩 테스트 스터디 (31)
        • 쿠버네티스 (40)
        • 대세는 쿠버네티스 [초급~중급] (11)
      • BOOK (0)
      • 자격증 (61)
        • 리눅스 1급 - 필기 기록 (19)
        • 네트워크 관리사 (2)
        • 네트워크 관리사 2급 - 실기 기록 (21)
        • 네트워크 관리사 2급 - 필기 기록 (16)
        • 정보처리 (2)
      • 직장인 대학원 (18)
        • 기록 (3)
        • 캐글 스터디 (3)
        • R (12)
      • 논문 (5)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스프링
    네트워크 관리사 2급 실기
    git
    리눅스 마스터
    파이썬 알고리즘
    리눅스 마스터 1급 정리
    네트워크 관리사 요약
    리눅스 마스터 요약
    docker
    쿠버네티스
    Spring
    네트워크 관리사 2급
    redis
    springboot
    리눅스 마스터 1급
    java
    VUE
    BackendDevelopment
    jpa
    쿠버네티스 스터디
    파이썬
    알고리즘
    리눅스 1급 요약
    REST API
    네트워크 관리사
    네트워크 관리사 학점
    네트워크 관리사 실기
    네트워크 관리사 자격증
    리눅스 마스터 1급 요약
    Git 저장소
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Binsoo
[ Git 사용법 ] GitHub Flow 📚 🙄 📚
상단으로

티스토리툴바