Git 개념 정리
Rebase
프로젝트의 히스토리를 재작성
Merge
새로운 병합 커밋을 생성하여 두 브랜치의 히스토리를 유지
Squashing
여러 커밋을 하나의 통합된 커밋으로 압축
Cherry picking
특정 브랜치의 변경 사항을 선택적으로 다른 브랜치에 통합
Sigining commits
Git에서 커밋의 진위와 무결성을 검증하는 방법
GNU Privacy Guard (GPG) 키를 사용하여 커밋에 암호화 서명을 추가하여 커밋 작성자가 본인임을 보장한다
Git Reflog
Git 히스토리의 명명된 지점인 Git References에 대한 로그
Interactive rebase
commit history를 대화형으로 재작성 할 수 있는 Git의 기능
커밋 적용전 수정, 재정렬, 결함, 삭제를 수행할 수 있다
origin
로컬 Git 저장소와 연결된 기본 원격 저장소의 이름
저장소를 로컬에 clone 할 경우 기본적으로 생성된다
upstream
fork 된 저장소의 원본 저장소
Conficts
브랜치를 병합하거나 rebase 시 저장소의 동일 파일 간 버전 차이로 발생하는 충돌 변경 사항
Feature Branch workflow
새로운 기능이나 버그 수정을 별도의 브랜치에서 개발하고 완료 후 메인 브랜치에 병합하는 전략
Git flow workflow
다양한 개발 작업을 위한 브랜치 모델을 정의하는 전략
메인, 개발, 기능, 릴리스, 핫픽스 브랜치와 같은 장기 브랜치를 포함
Forking workflow
각 개발자가 메인 저장소를 clone하지만 변경 사항을 자신의 fork 저장소에 push 하는 전략
이후 메인 저장소로 pull request (혹은 merge request)를 생성하여 병합 전 코드 리뷰 및 협업이 이루어진다
Pull Request Workflow
개발자가 메인 저장소에 기능 브랜치를 생성하고 pull request를 생성하여 메인 브랜치에 병합하는 전략
Trunk based development
메인 브랜치에서 직접 개발하고 작은 변경 사항을 자주 커밋하는 개발 전략
빠른 반복 및 지속적 배포에 집중하는 팀에서 유용하다
Reference