git: 분산 버전 관리 시스템으로, 파일의 변경 사항을 기록하고 되돌릴 수 있으며, 여러 명이 동시에 작업해도 충돌을 최소화해주는 도구.
github: git을 웹 기반으로 사용할 수 있게 만든 플랫폼으로, 코드 저장소를 공유하고 협업할 수 있다.
git에는 3개의 영역과 4개의 상태가 존재한다.
3가지 영역 (로컬저장소)
1. Working Directory (작업 디렉토리) → 내가 실제로 코드를 수정하는 공간
2. Staging Area (인덱스) → 커밋할 파일을 올려두는 임시 저장소 (git add)
3. Repository (로컬 저장소) → git commit을 통해 기록이 저장되는 내부 공간

4가지 파일 상태
1. Untracked: Git이 추적하고 있지 않은 파일
2. Modified: 수정되었지만 Staging Area에 올라가지 않은 상태
3. Staged: 커밋을 기다리는 상태 (add됨)
4. Committed: 로컬 저장소에 기록된 상태
브랜치는 독립된 작업 공간을 의미한다. main 브랜치를 깨끗하게 유지하면서 새로운 기능을 새 브랜치에서 자유롭게 개발할 수 있다.
git checkout -b 브랜치명 # 브랜치 생성 + 이동
브랜치를 나누면?!
어떤 작업을 해도 main에 영향이 없으며, 팀원들과 나눠 작업하고 나중에 병합이 가능하다!

만약 새로운 브랜치에서 기능을 완성한 후에 GitHub의 main 브랜치에 병합하려고 한다면?!
git add .
git commit -m "feat: 하고 싶은 말"
git push origin 브랜치명
-> 이렇게 하고 Github에 들어가보면 push한 브랜치가 생긴 것을 확인할 수 있다!!
PR을 보낸 뒤, 리뷰가 끝나면 병합이 가능하다
(✨이렇게 하는걸 추천) 이때 머지하는 방법은 GitHub에서 Merge pull request라는 버튼을 눌러도 되며,

로컬터미널에서 main 브랜치로 이동한 후 진행할 수 있다.
git merge 브랜치명
git push origin main
이렇게 하고 충돌이 없다면 내가 한 작업이 main으로 잘 병합된 것이다!!😎
git 쓰다가 헷갈리면 또 오겠습니다!