내배캠/수준별 강의, 특강

[내일배움캠프/백엔드] 특강. Git 심화

jy3574 2024. 10. 24. 20:42

<목차>

1. 브랜치 활용하기

2. Pull Request 활용하기

3. 협업 실전 가이드


브랜치 활용하기

-파일을 수정하고 싶은데, 원래 파일을 두고 수정하고 싶을 경우 복사본을 만들지 않고 브랜치를 활용하면 좋음!

-브랜치 === 복사본

 

*브랜치(복사본) 생성 명령어

git branch 브랜치이름

-브랜치 생성 명령어를 사용했는데 변화가 없는 것 같을때? 브랜치 확인 명령어 사용

 

*브랜치 확인 명령어

git branch

-확인하고 q를 눌러서 빠져나가면 됨

 

*브랜치 이동 명령어

git switch 브랜치이름
--보통 이걸 많이 씀
또는

git checkout 브랜치이름

 

*브랜치 한번에 생성&이동

git switch -c 브랜치이름

또는

git checkout -b 브랜치이름

 

*새로운 브랜치에서 코드 수정 -> 새로운 브랜치에서 수정된 코드 저장 (git add. -> git commit -m "저장메시지")

 

*새로운 코드를 짰는데 최신 브랜치가 아닌 main으로 합치는 이유?

-협업을 하기 위해

-결국 최종 브랜치로 하나를 모아야함

 

*브랜치 합치는 명령어

git switch 최종브랜치이름
git merge 합칠브랜치이름

 

 

Pull Request 활용하기

-git merge 보다는 github에서 합치는 경우가 더 많음

-github의 Pull Request를 활용하여 합침!!

-Pull : 당겨서 합치는 것(merge)

-Request : 요청하다

 

-브랜치에서 코드 수정 -> 새로운 브랜치에서 수정된 코드 저장(git add. -> git commit -m "저장메시지")

-> github 업로드(git push origin 브랜치명) -> github으로 이동

 

 

-> github 코드 반영 ( git pull origin 브랜치명)

 

*순서

1. 브랜치 생성 및 이동

2. 기능 개발 및 코드 저장

3. 코드 업로드 및 pull request 생성

4. github에서 merge

5. 내 로컬에도 반영

 

협업 실전 가이드

 

*문제점

-main 브랜치 === 배포용

-pull request 만드는법 & github에서 머지하는 법만 사용하기에는 문제가 많음

 

*문제점 1

-완벽하게 기능 개발해야 merge 가능

---만드는데 오래걸리거나 버그 수정이 오래걸릴 수 있음

---어디서 문제가 발생했는지 찾는지도 어려움

 

*해결책 1 - 개발용 브랜치

-develop 브랜치를 만들어놓고 배포할때 main을 사용

 

*문제점 2

-그냥 합치면 위험함

---에러날 가능성이 큼

---많은 사람이 할 경우 다 에러가 남

 

*해결책2 - 로컬에서 먼저 테스트

-충돌 해결할때도 이런 방법을 쓰면 좋음

 

<실전 가이드>

1. 초기 세팅

1️⃣ 팀장 : 초기 코드 작성 및 github 업로드

-폴더생성

-초기 코드 작성

-git init, add, commit

-github 레포지토리 생성

-github 업로드 -> git push

 

2️⃣ 팀장 : dev(혹은 develop) 브랜치 생성

-git switch -c dev(로컬에서 dev 브랜치 생성)

-git push origin dev(github에도 반영)

 

3️⃣ github에서 dev 브랜치를 default로 설정

 

4️⃣ 팀원들을 collaborator로 등록

 

5️⃣ 팀원 : git clone하기

-git clone 주소 .(점 잊지말기)

 

 

2. 기능 개발 시작

1️⃣ 기능 브랜치 생성 및 기능 개발

-git switch -c 기능브랜치명

 

2️⃣ Pull request 생성

 

3️⃣ 코드 작성자 : 리뷰 요청하기

 

4️⃣ 코드 리뷰어 : 리뷰하기

 

5️⃣ 합치기 전 내 로컬에서 충돌 해결 및 테스트

-기능 브랜치에서 git pull origin dev

 

6️⃣ merge

-수정사항이 있는 경우 git add, commit, push

-github에서 merge 버튼 클릭

 

 

3. 추가 기능 개발

1️⃣ 내 로컬의 dev에도 변경 사항 반영

-dev 브랜치로 이동 (git checkout dev 혹은 git switch dev)

-git pull origin dev

 

2️⃣ 다음 기능 개발

-기능 브랜치 생성 및 코드 작성

-git add, commit, push

-pull request 생성 및 코드 리뷰

-내 로컬에서 충돌 해결 및 테스트

-코드 업로드 및 merge