협업을 위한 git branch 관리 방법
main(master) : 실제 제품을 배포하기 위한 브랜치
feature(기능) : 기능을 개발하는 브랜치
develop(개발) : feature에서 개발된 내용이 저장되는 브랜치
release(배포) : 배포를 하기 전 내용을 QA(품질 검사)하기 위한 브랜치
hotfix(긴급수정) : main 브랜치로 배포를 하고 나서 버그가 생겼을 때 빨리 고치기 위한 브랜치

(참고 - 우아한기술블로그)
협업을 위해 커밋 메세지의 규약을 정한 것
feat : 새로운 기능 추가
fix : 버그 수정
docs : 문서 수정
style : 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
refactor : 코드 리팩토링
test : 테스트 코드
chore : 이 외 잡무
Feat: "로그인 기능 구현" // 해당 태그: 제목
소셜 로그인(KaKao) 기능개발 // 구체적 업무내용
Ref: #146 // 일감, 작업 번호
Fix: "회원가입 오류수정"
회원가입시 사용자 전화번호 누락이슈 수정
Ref: #1168
소스트리는 깃과 함께 사용하기 좋은 많은 기능들을 제공합니다.
이미 커밋 했던 것을 취소하고 싶을 때,
이 커밋까지 현재 브랜치를 초기화 버튼을 누르고, Hard 모드를 선택한다.
그러면 선택한 커밋 이후 커밋과 변경사항들이 완전히 사라진다.
이미 커밋 했던 것을 취소하고 싶을 때,
이 커밋까지 현재 브랜치를 초기화 버튼을 누르고, Mix 모드를 선택한다.
그러면 선택한 커밋 이후 커밋들은 사라지지만 변경사항은 작업환경에 남는다.
상태를 되돌려 커밋 이전 상태로 만들고, 돌려진 상태에 대한 커밋이 새롭게 추가된다.
특정 commit을 가독성 있게 지칭할 수 있는 tag(유의미한 분기점이 되는 commit에 붙이는 정보)
보통 태그는 소프트웨어의 버전을 릴리즈 할 때 사용한다.
예를들어 제품이 v1.0 이 릴리즈 될때 태깅을 한번 해 두고, v1.1 버전을 개발하면서 그 사이에 만들어지는 브랜치들과 커밋들이 존재하는데 이러한 것들은 커밋으로만 관리하다가, v1.1 버전이 완성되는 커밋에 태깅을 해두는 것이다.
아직 커밋하지 않은, 파일의 변경내용을 임시로 보관해주는 역할