여러 명이 동시에 같은 파일의 같은 부분을 수정하면, Git은 어떤 변경을 적용해야 할 지 스스로 결정하지 못해 충돌이 발생하게 됩니다.
PR 과정 뿐만 아니라, git pull 등으로 코드를 병합할 때에도 발생할 수 있습니다.
git add 파일명으로 변경을 스테이징합니다.git rebase --continue를 실행해 rebase 과정을 이어갑니다.git log를 확인해보면, rebase로 인해 기존 커밋의 해시가 달라지고, history가 일직선으로 정리됩니다. rebase는 커밋을 다시 쌓기 때문에, 같은 내용이라고 커밋 해시가 새로 생성됩니다.
이미 원격 저장소에 푸시된 커밋에 대해 해당 히스토리 변경 작업을 수행하면 협업에 심각한 문제가 발생할 수 있습니다. 그렇기 때문에 로컬 작업 또는 공유 전 브랜치에서만 사용해야 합니다.
특정 커밋을 스냅샷처럼 고정해 버전으로 명명하는 기능입니다.
브랜치가 작업 흐름을 관리한다면, 태그는 중요한 시점을 영구적으로 표시합니다.
태그는 한 번 지정하면 위치가 변하지 않습니다. 그렇기 때문에 주로 릴리즈나 롤백 시점 관리에 사용합니다.
태그를 기반으로 실제 사용자에게 배포되는 버전과 그에 대한 설명을 기록하는 Github 공식 기능입니다. Release note에는 주요 변경점, 버전, 업데이트 방법, 알려진 이슈, 기여자 등의 정보를 포함해 팀원 및 사용자에게 중요한 정보를 제공합니다.