TIL(Today I Learned)

[git/github] git flow(branch를 팀원별로 생성하여 협업하는 방법)

yunseohhe 2024. 7. 22. 22:48

안녕하세요.

오늘은 github을 이용하여 협업하기 좋은 방법에 대해 정리하겠습니다.

 

일단, 팀장(레포지토리 만든 사람)이 나머지 팀원들을 협력자(collaborator)등록을 했다는 전제하에 정리하겠습니다.

 

1. git clone

비쥬얼코드 & 인텔리제이

인텔리제이를 열고 터미널을 실행시킨 후에 git clone 하는 방법도 있지만

 

밑에처럼 작업할 폴더를 만든 후에 오른쪽 마우스를 눌러서 바로 터미널 실행하여 gitclone 하는 방법도 있습니다.

저는 이미 실행해서 파일이 하나 만들어져 있죠?!

 

눌러서 실행 후에 clone 하실 때 복붙이 안되니깐 "Paste"를 눌러줍니다!

  ( cf : clone하실때 " git clone <github 주소> . " 점 안찍으면 폴더까지 가지고 오게 되니깐 점은 안찍고 clone 하셔도 되요!)

 

1-1. git status 

clone 한 후에 status로 저장내역을 꼭 확인해주세요.

 

2. git branch -v( 또는 git branch)

이미 생성된 브랜치의 확인을 위해 입력해서 확인해줍니다.

테스트용으로 만든 dev 브랜치

프로젝트 협업할 때는 테스트용(dev 브랜치), 개발용(기능 브랜치)를  만들어서 협업하시는게 좋습니다.

 

테스트용(dev 브랜치)

main 브랜치에 합치기 전에 테스트로 팀원분들이 merge한 부분들이 잘 구현되는지 확인하기 위해 테스트용으로 만든 브랜치입니다.

git clone 했을 때, 이미 dev 브랜치가 만들어져있습니다. (= 팀장님이 보통 dev 브랜치까지 만들고 push해주시거든요!)

 

개발용(기능 브랜치)

dev 브랜치에 합치기 전에 테스트로 내가 개발한 기능 부분들이 잘 구현이 되는지 확인하기 위한, 오직 개발을 위한 브랜치입니다.

 

2-1. "git switch 브랜치이름" 또는 "git checkout 브랜치이름"

"git switch dev"로 dev 브랜치로 이동한 다음에 개발자용 브랜치를 만들 준비를 하시면 됩니다.

 

 

3.  git branch 브랜치이름( = 개발용 브랜치)

이미 dev 브랜치가 만들어진 상태로 clone을 했으니깐

내가 사용할 개발용 브런치를 생성해줍니다.

예시입니다!

 

보통 브랜치명은 본인이 담당한 기능과 연관지어서 짓습니다.(그래야 나중에 확인할 때 보기 좋죠?!)

 

예시) feature/signup : 가입 부분과 관련된 기능을 개발하는 담당의 브랜치

 

cf )  "git switch -c 브랜치이름" 또는 "git checkout -b 브랜치이름"

  • 브랜치를 한번에 생성하고 이동하는 명령어입니다.

 

4. git branch -v

생성한 본인의 개발용 브랜치의 확인을 위해 입력해서 확인해줍니다.

예시입니다!

5.  "git switch 브랜치 이름" 또는 "git checkout  브랜치이름"

생성한 브랜치명으로 가서 작업할 준비를 합니다.

 

이제 생성한 브런치 상태에서 본인이 맡은 기능부분 개발을 한 후에는

1) git add .

2) git commit -m"메세지 작성"

 

6. git pull origin dev

본인이 담당한 기능의 개발이 끝나셨으면 push를 먼저 하는게 아니라

혹시 모르는 상황을 대비하여

테스트용으로 만들었던 dev브랜치의 pull을 먼저 합니다.

 

7. git push origin 개발용브랜치명

그래서 합쳐서 오류가 나는 부분을 수정한 다음에 

본인 브런치에서 push를 먼저 진행해주고

(내 작업물을 수시로 서버에 push하여 다른 사람들이 확인할 수 있도록 해주는게 좋습니다.)

 

8. Pull request 생성

github(프로젝트 진행하는 레퍼지토리로)에 가보면 밑의 이미지처럼 pull request가 생성이 되있습니다.

 

 

이미지에 나와있는 pull request 생성하기 전에 합칠 브랜치랑 기능브랜치 꼭 확인한 다음에 생성해 주세요!

생성한 다음에 코드리뷰를 하는데, 코드 리뷰 부분은 이 글에서 생략하도록 하겠습니다.

(물론 현업에서는 합치기 전에 상의하는 단계니깐 코드리뷰 진짜 중요한 단계입니다!! )

 

 

9. merge

 

코드리뷰 끝나고 팀원분들과 상의가 끝난 후에 "merge" 하시면 (보통 merge권한은 팀장님이 맡고계십니다!)

테스트용 dev 브랜치에 합쳐지게 됩니다.

 

 

 

이제 최종적으로 dev에 개발을 모두 merge 하셨으면

dev에서 main 브랜치로 merge 한 다음에 배포하시면 됩니다!!

 

참고하기 좋은 이미지 한 장 첨부합니다! (출처: 내배캠)

 

 

10. 완료한 브랜치 삭제

그리고 추가로 또 말씀드리자면,

merge한 이후에 사용한 브랜치를 삭제하는 것이 좋습니다.

 

github에서 브랜치 삭제 권한은 보통 팀장님이 가지고 계셔서 팀장님이 github에서 삭제해주시면

 

우리는 로컬에서 "git branch -D 생성한 브런치명" 명령어로 브랜치를 삭제해주시면 깔끔하게 작업하는 과정입니다.

 

 


cf ) 로컬에서 브랜치 합치는 명령어

1. git switch 최종브랜치이름

2. git merge 합칠브랜치이름

확대하면 보여요!! (출처 : 내배캠)

위의 이미지는 login 브랜치에서 main 브랜치로 합치는 과정입니다!

 

 


 

 

이상으로 github로 협업할때 사용하시면 좋은 방법에 대해 정리하였습니다.

혹시 틀린 부분이 있다면,

댓글로 알려주시면 감사합니다 :-)