Git
- 버전 관리 시스템으로 소스 코드의 변경 내역을 추적하고, 여러 사람이 동시에 작업할 수 있게 해주는 도구이다.
- 프로젝트의 모든 변경 사항이 기록되어 언제든지 과거로 돌아갈 수 있다.
Repository
- 프로젝트의 파일과 변경 이력을 저장하는 곳
- 로컬 저장소(내 컴퓨터)와 원격 저장소(서버)가 있다.
Commit
- 파일의 변경 사항을 저장소에 기록하는 작업으로 각 커밋은 고유한 ID를 가지며, 변경 내역과 함께 기록된다.
Staging
- 커밋하기 전에 변경된 파일을 임시로 저장하는 영역으로 스테이징 영역에 있는 파일만 커밋된다.
Branch
- Git 저장소 내에서 독립적으로 작업할 수 있는 별도의 공간
- 새로운 기능을 개발하거나 버그를 수정하는 작업을 기존 코드에 영향을 주지 않고 진행할 수 있다.
기본 브랜치(Main Branch)
보통 'main'또는 'master'브랜치가 기본 브랜치로 사용되며 항상 배포 가능한 상태를 유지한다.
기능 브랜치(Feature Branch)
새로운 기능을 개발할 때 사용하는 브랜치로 기능 개발이 완료되면 기본 브랜치에 병합된다.
개발 브랜치(Develop Branch)
개발 중인 상태를 유지하는 브랜치로 여러 기능 브랜치가 이 브랜치에 병합될 수 있다.
브랜치를 사용하는 이유
- 독립적인 작업공간
- 안전한 통합
- 이력 관리
예시
git fetch --all --prune
git fetch
- 원격 저장소에서 변경된 내용을 가져와 로컬 저장소를 업데이트
- 로컬 브랜치의 커밋을 변경하지 않는다. 단지 원격 브랜치의 최신 상태를 로컬 저장소로 가져온다.
--all
- 로컬 저장소에 설정된 모든 원격 저장소에서 변경 내용을 가져온다.
git fetch는 특정 원격 저장소에서만 변경 내용을 가져온다. '--all' 옵션을 사용하면 여러 원격 저장소에서 동시에 변경 내용을 가져올 수 있다.
--prune
원격 저장소에서 삭제된 브랜치를 로컬에서도 삭제한다.