깃 브랜치 이름 규칙
- 원래는 master라는 이름을 썼었음 하지만 이름이 main으로 바뀌었음
- 언제 복사를 하나?
- 기능 개발: feature/login, feature/select-product
- 출시 준비: release-1.3, release-1.4
- 긴급 수정: hotfix-1.2.1
브랜치 삭제
git branch -d {브랜치 이름}
브랜치는 커밋해야 그때부터 브랜치
브랜치를 커밋해야 그때부터 적용된다. 하나의 개발툴안에서 브랜치 왔다갔다 하다 커밋할 때 어느 브랜치에 있는지 꼭 확인해야함
git branch -r
remote에 있는 브랜치가 뭐가 있나 알려주는 명령어
git branch 이해
위 사진을 예시로 설명해보자면 origin 깃허브 레포지토리의 main, 로컬 main, 로컬 feature/select-product 브랜치는 두번째 커밋까지 된 상태고
로컬의 feature/login은 첫번재 커밋까지 된 상태이다.
깃허브 저장소에 branch 올리기
git push {레포지토리 별칭} {깃브랜치명}
브랜치 전략
깃 플로우라고도 함
fast-forward
A 브랜치 에서 B 브랜치를 생성한 시점부터
A 브랜치에는 아무런 추가 구현을 하지 않고
B 브랜치에만 추가 구현을 한뒤
다시 A 브랜치에 B 브랜치를 붙이면 끝남
협업에서 잘 쓰이지는 않는 방식임
3-way
A 브랜치에서 B 브랜치를 생성한 시점부터
A 브랜치에도 추가 구현을 하고
B 브랜치에도 추가 구현을 하고
B 브랜치와 A 브랜치를 합친다.(각 브랜치를 서로 비교하여 바뀐 것을 정리하여 합치는 전략)
일반적으로 많이 사용하는 전략
하지만 main 브랜치는 건드리지 않는게 국룰 따라서 main 브랜치를 비워두기 때문에 처음 병합은 fast-forward 방식이고 그 뒤에 병합은 3-way 방식으로 이루어짐
병합
- 브랜치를 생성한다는 것은 협업을 위한 것
- 병합을 깃허브에서 주로 함
- main 브랜치 보호 설정
- pull request(PR): 병합을 해주는 브랜치에게 당겨줄 것을 요청한다.
브랜치는 병합 후에 삭제하는게 일반적. - pull request 메시지는 무슨 구현을 했는지, 무슨 이슈가 있었는지 등등 자세하게 써야한다.
- 병합할때도 commit이 하나 찍힘. 이것을 merge commit 이라고 부름.
병합된 깃허브를 깃에 동기화하기
- git fetch -p 깃허브 브랜치 목록을 동기화 명령어
- 다른 브랜치로 빠져나간 후
- git pull {레포지토리 별칭} {브랜치 이름}
- git branch -d {브랜치 이름}
충돌
- git checkout -t {레포지토리별칭/브랜치이름} : 깃허브에서 브랜치를 가져오는 명령어
- 깃 브랜치를 병합할 때 충돌이 발생할 수 있음. 이럴 경우에는 깃허브에서 충돌되는 부분을 하나만 선택하라고 알려줌
후기
이번수업으로 깃허브 사용법에 대한 과정이 모두 끝이났다. 깃허브의 작동이 어떻게 일어나는지 CLI를 통해서 제대로 알아보았고 또 병합과 충돌수정도 깃허브에서 진행해본 것은 처음이었던 것 같다. 이제 깃허브를 사용할 때 문제가 발생하면 해결책을 찾는것도 더 쉬워질 것 같다.
키워드: 프로그래머스 데브코스, 국비지원교육, 코딩부트캠프
'프로그래머스 풀스택 데브코스 > 데브코스 TIL' 카테고리의 다른 글
웹 풀사이클 데브코스 TIL 7일차 (0) | 2023.11.22 |
---|---|
웹 풀사이클 데브코스 TIL 6일차 (0) | 2023.11.21 |
웹 풀사이클 데브코스 TIL 4일차 (0) | 2023.11.19 |
웹 풀사이클 데브코스 TIL 3일차 (0) | 2023.11.16 |
웹 풀사이클 데브코스 TIL 2일차 (0) | 2023.11.15 |