본문 바로가기

공부/타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js)

포트폴리오 / 협업 환경 구성(4)-branch 이름 규칙, merge

✨Git branch 이름 규칙

메인브랜치: v1.2.0

develop branch - 기능개발시: feature/login, feature/select-products

출시준비시: release-1.3, release-1.4

긴급수정시: hotfix-1.2.1

 

✨branch 명령어

🔸git branch -d 브랜치명

➡️브랜치 삭제하는 명령어

🔸git branch -r

➡️GitHub에 branch가 몇 개가 있는지 확인하는 명령어

🔸git branch 브랜치명

➡️Git 안에서만 브랜치를 생성하는 명령어

🔸git push (원격저장소별칭) (생성한 브랜치명)

➡️원격저장소(GitHub)에 브랜치를 생성해서 git에 있는 브랜치와 연결하는 명령어

 

branch를 생성한 당시부터 병렬로 사용할 수 있는게 아니라 commit을 하는 순간부터

병렬적으로 사용할 수 있다.

 

branch 사용 주의점

commit을 하면 롤백이 되지 않기 때문에 항상 내가 어떤 branch에 있는지 더블체크 후 commit 해야함!

 

 

🔥Git branch 전략🔥

git-flow 라고도 부르며 크게 2가지로 분류된다.

일반적으로 main branch에 바로 추가 구현을 하지 않는다!💢

❄️fast forward

🔹A branch에서 B branch를 생성한 시점부터

A branch에는 아무런 추가 구현을 하지않고, B branch만 추가 구현 한 뒤

B branch와 A brnach를 합치는 전략

❄️3-way ➕ fast forward🗝️🗝️

🔹일반적으로 가장 많이 사용하는 전략

A branch에서 B branch를 생성한 시점부터

A branch도 추가 구현을 하고, B branch도 추가 구현을 한 뒤

B branch와 A branch를 합쳐서 각 branch를 서로 비교하여 바뀐 것을 정리하여 합치는 전략

💢충돌이 일어날 수 있음

 

✨merge 전 pull request 요구할 수 있게 branch 보호 설정하기

Pull Request(pr)✨

🔥병합할 때 사용하는 pr에 메모를 남기는 팁

🔹branch에 구현한 사항들을 메모 (마크다운 사용)

🔹주요 구현 내용, 이슈 꼭 남기기🔥

 

✨merge 하기

Merge pull request 버튼 눌러서 merge하기

🔥보통 협업에서는 목적에 맞는 branch 사용 후 merge까지 하게되면 delete branch를 한다.

💢무언가 문제가 있다면? 다시 branch를 살리거나 merge를 풀 수도 있음!💢

❄️Git Commit history

정리!
✨Merge(병합)이란?

🔹Git 에서

branch를 생성한다는 건 협업을 위한 것

생성한 branch에서 기능 구현 후 commit 하고

🔹GitHub에서

main branch를 보호설정 후

생성한 branch에 소스코드를 main branch와 병합 함(Pull Request)

GitHub에서 자동으로 충돌이 일어나는지 확인 하고

🔥PR메세지🔥(기능구현내용, 이슈) 남긴 후

Merge를 하면서(이때 하는 merge도 commit이다.)

❄️merge commit❄️해주고

마지막으로 기능 구현 위해 생성한 branch는 삭제해준다.🗝️

 

💢GitHub에서 삭제한 branch가 Git에서 살아있을때 !

🔸git fetch -p

➡️ Git에서 GitHub와 동기화 시키는 명령어

사용 후 git branch -r 명령어 확인하면 branch가 사라진 걸 볼 수 있음!

(아직 git branch 에서는 남아있음)

그 후 Git에서도 git checkout master 해서 이동한 후

git branch -d 브랜치명 을 사용하여 삭제하면

error: the branch 'feature/login' is not fully merged 에러가 뜨는데

git pull origin master 명령어를 사용하여

✨Git에도 GitHub에서의 머지상태를 동기화 시킨 후

다시 브랜치 삭제 명령어를 사용하여 삭제한다!💢

🔥🔥재정리 🔥🔥

git fetch -p

git checkout master

git pull origin master

git branch -d 브랜치명

💢동기화 후 log에 동기화 전 log에는 없던 merge commit도 확인 가능하다💢

🔥🔥branch delete 성공🔥🔥

 

✨GtiHub에서 branch 생성해서 Git으로 받아와서 merge 실습해보기!

❄️GitHub에서 branch 생성하기

❄️Git에서 GitHub와 동기화 후

🔸git checkout -t 브랜치명

명령어를 통해 내가 원하는 브랜치로 이동하기

 

💢각각의 branch에서 같은 소스코드 수정 commit을 하여 충돌상황 실습

먼저 commit한 feature/1 branch pr 해주고 feature/2 branch pr시

💢 자동으로 merge 할 수 없다는 경고창이 뜸.💢

💢pr버튼 클릭시 뜨는 창

💢Resolve conflicts 버튼 클릭시 같이 변경되어 충돌이 생긴 소스코드 부분을 보여준다.

❄️충돌부분 직접 확인하여 살릴 부분만 남기고

Mark as resolved 버튼을 눌러준 후 commit 해준다.