기어가더라도 제대로
(4) Git&GitHub [ch.3] 여러 명이 함께 Git으로 협업하기 본문
1. 원격저장소에서 협업하기: 브랜치(Branch)
여러 사람이 협업하기 위해선 서로 다른 가지 위에 버전을 저장해야 같은 코드를 수정하고 저장했을 때 대처가 가능하다. 이렇게 유용한 브랜치에 대해서 알아보자.
Git이 커밋을 관리하는 방식: 줄줄이 기차
- 브랜치(Branch): 특정 기준에서 줄기를 나누어 작업. 새로운 가지로 커밋을 만드려면 반드시 먼저 브랜치를 먼저 만들어야 한다. 브랜치를 새로 만들면 기존 브랜치의 마지막 커밋을 가리킨다. 즉, 브랜치를 추가하는 것은 새로운 포인터를 추가하는 것이다.
- [master] 브랜치 : Git이 제공하는 기본적인 브랜치
- [Origin/master] 브랜치 : 원격 저장소(Origin)의 master 브랜치
- [HEAD] : 브랜치 사이를 넘나들 수 있게 해주는 포인터
새 브랜치 만들기
여러 사람이 협업하는 원격저장소에 경우에 미리 브랜치 생성 규칙을 만들어 놓는게 좋다.
예시
1.[master] 브랜치에는 직접 커밋을 올리지 않는다.
2.기능 개발을 하기 전에 [master] 브랜치를 기준으로 새로운 브랜치를 만든다.
3.이 브랜치 이름은 [feature/기능이름] 형식으로 하고 한 명만 커밋을 올린다.
4.[feature/기능이름] 브랜치에서 기능 개발이 끝나면 [master] 브랜치에 이를 합친다.
브랜치 이동하기(checkout)
git checkout master
: 마스터 브랜치로 체크아웃하는 명령어
체크아웃은 다른 브랜치로 이동하라는 명령어 입니다. 소스트리에서는 다른 브랜치를 더블클릭하는 것만으로도 브랜치 이동이 가능합니다.
2. 브랜치와 브랜치를 합치기: 병합(merge, 머지)
개발한 기능을 테스트 후에 오류가 없다면 마스터 브랜치에 병합을 해야 기준이 되는 브랜치에서도 코드가 구현이 됩니다.
병합의 종류(3)
- 빨리 감기 병합(fast-forward) : 새로 추가되거나 충돌나는 것 없이 그냥 앞으로 휘리릭 이동하기만 하면 되어서 '빨리 감기'라고 부릅니다. 소스트리에서 봤을 때 두개의 브랜치가 한줄기 위에 있다면 빨리 감기 병합을 실행합니다.
- 병합 커밋(merge commit) : 가지가 나뉘면 하나의 줄기로 합치는 과정이 필요하고, 이 과정 자체를 커밋으로 남기는데 이를 병합 커밋이라 합니다. 기준 가지가 두개인데 어느 곳을 기준으로 커밋을 남기면 좋을까요? 상황 마다 다르지만, 기능을 메인 코드에 추가한다는 상황이면 [feature/기능] 브랜치를 [master] 브랜치에 병합 합니다.(베이스 브랜치 : [master])
- 충돌(conflict) : 두개의 가지에서 같은 파일을 수정했다면 충돌이 납니다. 이 충돌이 난 파일을 소스트리에서 '커밋하지 않은 변경사항'에서 확인합니다. 충돌난 파일은 스테이지 아래에 있습니다. 해당 파일을 고치면 병합이 가능합니다. 오류를 고쳤다면 병합을 재개해줍니다.
'기타' 카테고리의 다른 글
AppElements (0) | 2022.02.21 |
---|---|
GitHub Gist를 원격에서 편집하기 (feat. git) (0) | 2021.12.31 |
Git & GitHub ch7 --> 공부 할 때 마음가짐 (0) | 2021.11.17 |
(3) 팀 개발을 위한 git github 시작하기 (0) | 2021.11.15 |
(2) git&github 시작하기 (0) | 2021.11.14 |
Comments