데브허브 | DEVHUB | Git Mastery Crash Course | From First Commit to Big Tech WorkflowsGit Mastery Crash Course | From First Commit to Big Tech Workflows
- Git은 코드 변경 사항을 시간 여행처럼 기록하고 관리하며, 팀 협업을 돕는 버전 관리 시스템입니다. 🕰️
- Git은 작업 디렉토리(코드 작성), 스테이징 영역(커밋할 변경 선택), 로컬 저장소(커밋된 스냅샷 저장)의 세 가지 주요 영역에서 작동합니다. 📁
- 스테이징 영역은 커밋할 변경 사항을 세밀하게 선택하여 깔끔한 커밋 히스토리를 유지하고, 커밋 전 안전망 역할을 합니다. 🛒
- 로컬 저장소는 개인 컴퓨터의 프로젝트 전체 기록을 담고, 원격 저장소는 팀 협업을 위한 중앙 클라우드 코드베이스 역할을 합니다. ☁️
- 기본적인 Git 워크플로우는 코드 수정(edit) → 스테이징(stage) → 커밋(commit) → 푸시(push) → 풀(pull) 순서로 진행되어 팀의 코드 동기화를 유지합니다. 🔄
- 브랜치(Branch)는 메인 코드에 영향을 주지 않고 새로운 기능 개발이나 버그 수정을 위한 독립적인 작업 공간을 제공합니다. 🌿
- 피처 브랜칭은 각 기능 또는 버그 수정마다 전용 브랜치를 생성하고, 작업 완료 후 메인 브랜치로 병합하는 가장 기본적인 전략입니다. 🚀
- Gitflow는 마스터, 개발, 기능, 릴리스, 핫픽스 브랜치 등 구조화된 모델로, 정기적인 릴리스 주기와 다중 버전 관리가 필요한 프로젝트에 적합합니다. 🗺️
- GitHub Flow는 메인 브랜치가 항상 배포 가능하며, 짧은 수명의 기능 브랜치를 사용하고 Pull Request를 통해 병합하는 단순하고 빠른 워크플로우입니다. 🐙
- GitLab Flow는 GitHub Flow에 환경별(스테이징, 프로덕션) 브랜치 개념을 추가하여 다중 배포 환경 관리에 용이하며, 배포와 커밋을 연결합니다. 🏷️
- 트렁크 기반 개발(TBD)은 단일 메인 브랜치에 자주 커밋하고 기능 플래그를 활용하여 빠른 통합 및 배포를 지향하는 대규모 기술 기업의 핵심 전략입니다. 🌳
- 각 Git 워크플로우는 팀 규모, 릴리스 주기, 배포 환경의 복잡성 등 프로젝트의 특성에 따라 가장 적합한 전략을 선택해야 합니다. 🎯