오늘은 Git에 대한 마지막 시간이었다. 아직 많은 기능을 다루지는 못했지만, 가장 많이 사용하고 당장 필요한 기능을 숙달하기 위해 오늘도 여러 번 반복해서 연습했다.
저장소의 기존 코드에서 갈라져 나온 하나의 독립적인 작업 공간으로, 여러 브랜치에서 작업 후 다시 합치는 작업을 항상 해야 한다는 특징이 있다.
브랜치의 역할
Branch 관련 명령어
git switch 브랜치 이름 or git checkout 브랜치 이름 : 다른 브랜치로 이동
git branch : 로컬 브랜치 목록 확인
git branch -a : 로컬 + 원격 브랜치 목록 확인
git branch -r : 원격 브랜치 목록 확인
git branch -d 브랜치 이름 : 로컬 브랜치 삭제
git branch -D 브랜치 이름 : 브랜치 강제 삭제
git push origin -d 브랜치 이름 : 원격 브랜치 삭제
git merge 브랜치 이름 : 해당 브랜치를 현제 브랜치에 병합
fast-forward = 현재 브랜치에서 변경 사항이 없을 때, 다른 브랜치의 커밋을 그대로 병합
3-way merge = 두 브랜치가 각각 다르게 작업하여 하나로 병합
두 브랜치가 각각 같은 파일을 작업 후 병합하려고 하면 충돌이 발생
브랜치 이름을 정할 때 자주 사용하는 규칙이 있다.
| feature/ or feat/ | 새로운 기능 개발 |
|---|---|
| fix/ | 버그 수정 |
| hotfix/ | 긴급 버그 수정 |
| release/ | 릴리즈 준비용 |
| refactor/ | 리팩토링(기능 변경 없이 코드 구조 개선) |
| test/ | 테스트 코드 작성 |
| chore/ | 사소한 작업 |
옵션
--soft : HEAD만 이동, 스테이징에는 올라가 있으며 커밋만 다시 하고 싶을 때 사용
--mixed : HEAD와 스테이징 영역까지 이동
--hard : HEAD, 스테이징 영역, 작업 디렉토리 모두 롤백, 복구 불가능
이동할 커밋
HEAD~n : n번째 조상 커밋으로 이동
HEAD^n : 병합 커밋에서 사용하며 n번째 부모로 이동
협업에는 reset보다 revert를 권장
브랜치를 만들어 GitHub에서 merge 하는 과정이 조금 익숙해진 후 GitHub를 이용한 협업 방법을 공부했다.
WATERFALL
AGILE
스프린트(Sprint) : 정해진 기간(보통 2~4주) 동안 제품의 일부를 개발하는 반복 주기
제품 백로그(Product Backlog) : 제품에 필요한 기능, 개선사항, 버그 수정 목록
스프린트 백로그(Sprint Backlog) : 해당 스프린트에서 구현할 작업 목록
데일리 스크럼(Daily Scrum) : 매일 15분 내외로 진행되는 짧은 회의, 진행 상황 공유 및 문제점 논의
스프린트 계획 회의(Sprint Planning) : 스프린트에서 어떤 일을 할지 결정
데일리 스크럼(Daily Scrum) : 팀원들이 각자의 진행상황을 공유
스프린트 리뷰(Sprint Review) : 스프린트 결과물 시연 및 피드백 수집
스프린트 회고(Sprint Retrospective) : 스프린트 과정에 대한 개선점 논의
Collaborator
Fork
팀으로 나누어 팀원의 원격 저장소에 연결하여 파일을 clone하고 push하는 과정을 연습했다. GitHub 사용이 점점 익숙해지고 있다는 느낌이 들었다.
앞으로 한 파트가 끝날 때마다 정리한 Notion 링크를 올릴 생각이다. 물론 새롭게 배우거나 알게 된 내용이 생기면 계속 업데이트할 예정이다.