브랜치(협업)

오늘도 삽질중·2022년 1월 19일
0

Github

목록 보기
1/2

브랜치

브랜치란?


브랜치란 독립적으로 어떤 작업을 진행하기 위한 개념이다.
(각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에 여러 작업을 동시에 진행 가능하다, 따라서 여러 개발자들이 동시에 서로 다른 작업이 가능하다.)

장점

  • 한 소스코드에서 동시에 다양한 작업을 할 수 있게 해준다.
  • 소스코드의 한 시점과 동일한 상태를 만들고, 브랜치를 넘나들며 작업을 수행할 수 있다.
  • 각각의 브랜치에서 생긴 변화가 다른 브랜치에 영향을 주지 않고 독립적으로 코딩을 진행할 수 있다.
  1. 일단 통합브랜치를 만든다.
  2. 각자의 브랜치에서 작업을 진행한 후 작업이 끝난 브랜치에 병합해서 변경 사항을 적용한다.
    ( 이를통해 다른 브랜치의 작업에 영향을 받지 않고 독립적으로 특정

브랜치 종류


통합 브랜치 (Integration Branch)

배포될 소스코드가 기록되는 브랜치(기본적으로 main or master)
해당 프로젝트의 모든 기능이 정상저그올 작동하는 상태의 소스코드가 담겨있다.

피처 브랜치 (Feature Branch)

기능추가, 버그 수정과 같이 단위작업을위한 브랜치
통합 브랜치로부터 만들어내며 피처 브랜치에 하나의 작업이 완료가되면 다시 통합 브랜치에 병합을 하는 방식으로 진행이 된다. 토픽 브랜치라고도 불림

🍯 보통 사용되는 브랜치
master/main 항상 최신의 안정적인 프로그램
dev 베타 버전/모든 개발 로그들이 쌓이는곳, 새로운 feature기능들이 완성되고 머지되는 곳
feature 기능을 추가할때마다 따는 브랜치
test
hotfix 급한 수정
release 배포할때 쓰는 테스트용 브렌치

🦋 브랜치 명령어 모음

- 새로운 브랜치 생성

$ git branch 새로운 브랜치 이름

- 새로운 브랜치 생성 후 해당 브랜치로 전환

$ git switch -c 새로운 브랜치 이름
$ git checkout -b 새로운 브랜치 이름

- 브랜치 목록 확인

$ git branch

- 브랜치 목록과 각 브랜치의 최근 커밋 확인

$ git branch -v

- 브랜치 삭제

$ git branch -d 삭제할 브랜치 이름
$ git branch -D 해당 명령어는 병합하지 않은 브랜치를 강제 삭제하는 방법입니다.

- 브랜치 전환

$ git switch 브랜치 이름
$ git checkout 브랜치 이름

- 브랜치 병합

master 브랜치로 dev 브랜치를 병합할 때 (master ← dev)
$ git checkout master // 상위브랜치로 이동해서
$ git merge dev // 병합한다.

- push

$ git push origin 푸시할 브랜치이름

- 로그에 모든 브랜치를 그래프로 표현

$ git log --branches --graph --decorate

아직 commit 하지 않은 작업을 스택에 임시로 저장

$ git stash (예를들어 구글 로그인 기능을 추가해보려고 시도하다가 어려워서 그만둔었고 작업하던 코드를 잠시 다른 공간에 저장해두었다.이런경우에..)

흐름정리

local에서 새로운 브랜치를 생성하고 작업이 끝나면 Remote Repository로 Push한다. 그리고 Project Upstream Repository에 반영(merge)될 수 있도록 Pull Request한다.

만약 작업을 하는 도중에 Remote upstream에 업데이트가 생긴다면 local로 pull받아주어야 한다는것을 잊지말자!

참고

  • 코드스테이츠
profile
의미없는 삽질은 없다1

0개의 댓글