Git Branch 란? 📑
독립적으로 어떤 작업을 진행하기 위한 개념입니다.
개발을 하다 보면, 한 페이지 안에 여러 기능을 따로 구현하거나, 이전 코드와 비교를 위해 여러 코드를 복사해야 하는 일이 자주 있습니다.
Git의 브랜치를 활용하면, 코드를 통째로 복사한 후, 원래 코드에 영향을 주지않고 독립적으로 개발할 수 있습니다.
주로 여러명이 동시에 작업할 때, 다른 사람에게 영향을 주거나 받지 않기 위해, 팀 프로젝트에서 많이 활용되고 있습니다.
개발자들은 각자 맡은 역할의 기능을 구현하면서 "작업단위"로 업무가 진행됩니다. 이때 서로에게 영향을 주지 않고 내용을 모두 기록하기 위해 만들어진 대책입니다.
Git Branch 작업 순서 📑
(1) 프로젝트 Github에서 갖고오기
> git clone "리퍼지토리 URL"
(2) "dev" 브랜치 생성
> git checkout -b "dev"
(3) 생성된 브랜치로 전환
> git switch -c "dev"
(4) 브랜치 생성 확인(목록 조회)
> git branch
※ "q"를 눌러 종료
(5) 브랜치 내, 개발 브랜치 생성
브랜치를 생성해서 로그인 기능을 구현하고 테스트를 하려고 합니다. "dev" 내에 "feature/login" 브랜치를 생성합니다
> git checkout -b feature/login
(6)"feature/login"로 브랜치 전환
> git switch -c feature/login
(7) "dev"와 "feature/login" 병합(merge)
> git checkout dev
> git switch dev
> git merge feature/login
이때 작업은 추가적인 커밋 없이 fast-forward방식으로 진행됩니다.
※ fast-forward 란?
별도의 커밋을 생성하지 않고 현재 브랜치가 가리키는 브랜치와 바꾸는 작업
> Rebase vs Merge
merge :
변경 내용의 이력이 모두 그대로 남아 있기 때문에, 이력이 복잡해진다.
rebase :
특정 시점으로 브랜치가 가리키는 곳으로 변경하는 기능으로, 이력이 잘 정리돼있지만,
저장하고자 하는 변경 내용의 이력은 따로 저장해야 한다.
(8) 작업 내용 Push 하기
브랜치는 Local(로컬)에서 작업이 진행됩니다.. 작업이 완료되면 "push"를 통해 GitHub에 최신을 올립니다.
> git push origin dev
(9) Pull Request
GitHub에 다른 팀원들에게 최신 된 코드를 알립니다. 팀장 또는 관리자가 이를 확인한 후, 문제가 없다고 판단되면 요청을 받아 최종적으로 최신화를 진행합니다.
> 전체 workflow
Git Branch 명령어 📑
브랜치 생성
git branch [새로운 브랜치 이름]
브랜치 전환
git switch -c [새로운 브랜치 이름]
git checkout -b [새로운 브랜치 이름]
브랜치 목록 확인
git branch
브랜치 목록과 각 브랜치 최근 커밋 확인
git branch -v
브랜치 삭제
git branch -d [삭제할 브랜치 이름]
브랜치 강제 삭제
git branch -D
브랜치 병합
master 1 -> branch2로 병합할 때
git checkout master1
git merge branch2
로그에 모든 브랜치 그래프로 표현
git log --branches --graph --decorate
아직 commit 하지 않은 작업 스택에 임시 저장
git stash
그 외, 상황 별 git 명령어 도움
'DevOps > GitHub' 카테고리의 다른 글
[GitHub] 로컬 및 원격 브랜치(Branch) 삭제하기 || Git | Branch || (0) | 2023.05.31 |
---|
댓글