📖 정호영, 진유림. <팀 개발을 위한 Git, GitHub 시작하기(개정판)>, 한빛미디어.
Chapter. 3
: 여러 명이 함께 Git으로 협업하기
- 브랜치(branch) : 특정한 기준 시점에서 줄기를 나누어 작업할 수 있는 기능. 커밋을 가리키는 pointer
- 브랜치 이름에 / 를 넣으면 앞에 적은 텍스트를 폴더처럼 볼 수 있다.
> (참고) 두 개발자가 정한 브랜치 규칙
1. [main] 브랜치에는 직접 커밋을 올리지 않는다(동시 작업 시 꼬일 수 있음)
2. 기능 개발 전에 [main] 브랜치를 기준으로 새로운 브랜치를 만든다.
3. 이 브랜치 이름은 [feature/기능이름] 형식으로 하고 한 명만 커밋을 올린다.
4. [feature/기능이름] 브랜치에서 기능 개발이 끝나면 [main] 브랜치에 합친다.
🅱 브랜치 병합하기
- 병합 커밋(merge commit) : 두 브랜치를 합치며 만들어진 새로운 커밋
- 빨리 감기(fast-forward) 병합 : 새로운 추가나 충돌 없이 앞으로 이동
- 충돌(conflict)
main 브랜치를 가져와 내 브랜치에서 병합한다.
혹시 병합하다가 충돌할 수 있으니까 동료들의 불편 감소를 위해 나만 쓰는 브랜치에서 먼저 병합해보는 것.
문제 없으면 병합 커밋을 main 브랜치에 반영
🅲 충돌 해결하기
1. History의 [uncommitted changes]에 충돌이 난 파일이 스테이지 아래에 있다.
2. VS code에서 해당 파일을 열어보면 Git이 충돌 난 코드를 자동으로 마크한 것을 확인할 수 있다. > 충돌이 나지 않게 코드 수정
3. 소스트리에서 해당 파일 선택 후 충돌이 모두 해결되었는지 확인
4. 스테이지 > 커밋 > 병합 커밋 생성 ~ 충돌 해결!
5. 원격저장소에 반영: [push]
main 브랜치에 반영: main checkout > 병합
main 브랜치 포인터 확인
원격 저장소에 메인 브랜치를 푸시해 수정사항
🅿︎ 풀 리퀘스트
: 협력자에게 브랜치 병합 요청 메시지를 보내는 것.
<브랜치를 합치는 예의 바른 방법>
1. 새로운 브랜치를 만들어 원격 저장소에 푸시
2. GitHub의 원격 저장소에는 내가 푸시한 브랜치가 노란색으로 보인다.
3. [Compare & pull request]
4. [base:main] , [compare: 내 브랜치명]
제목과 설명 입력 후 [creat pull request]
5. 협력자가 할 수 있는 것: Accept, Request change, Merge pull request
6. 리퀘스트가 받아들여지면 main 브랜치에서 pull해서 내 컴퓨터의 main 브랜치에도 새로운 커밋을 반영한다.
🅿︎ 풀 리퀘스트 화면 구성
- [base: main] : 병합된 커밋이 들어갈 베이스 브랜치
- [compare: ~ ] : 병합의 대상(내가 만들어 반영시키고 싶어하는 비교 브랜치)
- [Able to merge] : 베이스 브랜치와 비교 브랜치가 충돌 없이 병합 가능하다는 뜻. GitHub에서 자동 계산해서 보여준다. 충돌이 있으면 빨간색으로 Confilict 표시
- [Reviewers] : 저장소의 여러 협력자 중에 선택적으로 검토 요청 가능
- [Assignees] : 풀 리퀘스트 담당(보통 자기 자신)
- [Lables] : 이 풀 리퀘스트에 관련된 라벨 [버그] [리뷰 필요] 등등
'언어 및 개념 일반' 카테고리의 다른 글
| [C] 📥 입출력 함수 (3) | 2025.01.13 |
|---|---|
| 컴파일 에러와 런타임 에러 (1) | 2025.01.03 |
| 책 따라 Git 기릿🌱: Chapter. 2 (1) | 2024.12.23 |
| 책 따라 Git 기릿🌱: Chapter. 0 1 (4) | 2024.11.22 |
| FastAPI와 favicon error (2) | 2024.11.22 |