728x90
Git 기초
- Git은 중앙 서버 없이 local 환경에서 작업 히스토리를 기록하는 분산 버전 관리 시스템이다.
- 브랜치를 쉽게 생성, 병합 할 수 있어 새로운 기능을 개발하거나 버그를 수정하는 작업을 메인 프로젝트와 분리된 상태로 진행한 후 병합 할 수 있다.
- 변경된 파일의 전체 복사본을 저장하는 것이 아니라 변경 사항만 기록하기 때문에 메모리 효율적인 작업이 가능하다.
- GitHub는 google drive, one drive 같이 원격 저장소인 동시에 협업을 용이하게 해주는 서비스다.
기본 용어
저장소와 구조 관련 용어
- Repository : 프로젝트의 모든 파일과 변경 이력을 저장하는 장소
- 유형: 원격 저장소 (remote), 로컬 저장소 (local)
- Branch : 독립적인 작업 공간으로 새로운 기능 개발이나 버그 수정을 위해 사용됨
- 주요 branch는
main
으로 유지하고 변경이 필요한 부분을 main을 복제한 branch에서 작업을 수행
- 주요 branch는
- origin : 원격 저장소의 별칭
- HEAD : 현재 작업 중인 브랜치나 커밋을 가리키는 포인터
작업 기록 및 관리 용어
- Add : 변경된 작업물을 staging area에 올리는 작업
- Stage : 커밋할 준비가 된 작업물의 상태
- Commit : staging area에 있는 변경 사항을 기록하는 행위
- 게임에서 체크 포인트 저장하는 개념와 비슷함
- 각 커밋은 고유 ID와 commit message를 가짐
- 이후 해당 commit의 작업 내용을 알아볼 수 있게 최대한 구체적으로 작성하는 것이 좋음
- Checkout : 특정 브랜치나 커밋으로 작업 공간을 전환하는 행위
동기화와 병합 관련 용어
- Fetch : 원격 저장소의 변경 사항을 로컬 저장소로 가져오는 작업
- Pull : Fetch + Merge를 한번에 하는 것
- Push : 로컬 저장소의 변경 사항을 원격 저장소로 업로드 하는 작업
- Merge : 브랜치를 합치는 작업으로, 서로 다른 브랜치의 작업 결과물을 하나로 통합하는 작업
Reference
wikidocs 깃(git) & 깃허브(GitHub)
Git, GitHub, & Workflow Fundamentals