컴퓨터 프로그래밍/Git

[Git] branch 와 협업 실전 가이드

한33 2024. 8. 1. 11:29

브랜치 는 복사본이다.

복사본을 통해서 메인 (배포) 브랜치와, 테스트 브랜치 기능 개발 브랜치 등으로 나눠서 관리를 할 수 있다.

 

브랜치 생성 명령어

* git branch 브랜치이름

 

* git branch

갖고 있는 branch 리스트가 나옴

현재 branch 앞에는 * 이 붙음

 

브랜치 이동 명령어

* git switch 브랜치이름

* git checkout 브랜치 이름

 

브랜치 한 번에 생성&이동

* git switch -c 브랜치이름

* git checkout -b 브랜치이름


새로운 브랜치 login 에서 수정된 코드를 저장

git add .

git commit -m ""

하고 나서 이전 main 으로 이동하면 수정한 코드가 수정 전으로 돌아감

 

코드 짠 새로운 브랜치 login 을 main 브랜치로 합치기

git switch 최종브랜치이름(main) → 최종 main 으로 이동

git merge 합칠브랜치이름(login)

(하지만 이 방법은 잘 안 씀)

 

git reset --hard 주소9자리 

해당 로그로 복구


Pull Request 활용하기

git add .

git commit -m ""

git push 

이후에 github 홈페이지에 들어가서 확인해보면

base : 최종 브랜치, compare : 기능 브랜치

compare → base 로 합칠 것.

create pull 누르고 merge pull request 누르면 합쳐진다.

 

local 말고 github 에서 수동으로 합친 것임

이 상태에서 local 에서 main 브랜치로 이동 후 pull 하면 코드가 업데이트 된다.


정리

1. 브랜치 생성 및 이동
2. 기능 개발 및 코드 저장
3. 코드 업로드 및 Pull request 생성
4. github 에서 merge
5. 내 로컬에도 반영


하지만 이대로 실전 협업에 들어가기엔 문제가 몇 가지 발생할 수 있다.

 

1. Main 브랜치가 배포용이라는 점.

예를 들어 cart 브랜치, login 브랜치 작업 후 합치고 나면 바로 배포를 하는 이런 방식은 바람직하지 못하다.

테스트를 거쳐서 에러는 없는지, 브랜치들이 합쳐졌을 때 충돌은 없는지 확인을 하는 과정이 필요하다.

기능 브랜치를 배포용 main 브랜치로 가기 전에 테스트용 브랜치로 먼저 이동시켜서 테스트를 거치자.

 

2. cart 브랜치와 login 브랜치에서 같은 명의 변수를 선언하는 경우

이를 방지하기 위해서 push 하기 전에 pull 로 당겨서 내가 먼저 수정 체크를 한 다음 push 를 다시 하는 방법을 사용하자.


1. 팀장 : 초기 코드 작성 및 github 업로드
2. 팀장 : dev 브랜치 생성
git switch -c dev
git push origin dev
3. Github 에서 dev 브랜치를 default 로 설정
Settings -> Default branch -> 화살표
5. 팀원 : git clone 하기
git clone 주소. (. 빼먹지말기)

1. 기능 브랜치 생성 및 기능 개발
git switch -c 기능브랜치명
2. 코드 저장 및 업로드
git add commit push 
홈페이지 가서 Compare & pull request 누르기
create pull request 누르기
3. 리뷰 요청하기
4. 코드 리뷰어 Files request 누르고 리뷰 하기
5. pull dev  땡겨오고 수정
6. merge