# 새 저장소 생성
git init # 새로운 Git 저장소를 초기화합니다.
# 원격 저장소 복제
git clone [url] # 원격 저장소의 전체 내용을 로컬로 복사합니다.
# 파일을 스테이징 영역에 추가
git add [파일명] # 변경된 파일을 다음 커밋에 포함시키기 위해 준비합니다.
# 변경사항 커밋
git commit -m "커밋 메시지" # 스테이징된 변경사항을 저장소의 히스토리에 기록합니다.
# 원격 저장소에 푸시
git push origin [브랜치명] # 로컬의 변경사항을 원격 저장소에 업로드합니다.
# 원격 저장소에서 변경사항 가져오기
git pull origin [브랜치명] # 원격 저장소의 최신 변경사항을 로컬로 가져옵니다.
# 브랜치 목록 확인
git branch # 모든 로컬 브랜치를 보여줍니다.
# 새 브랜치 생성
git branch [브랜치명] # 현재 커밋을 기준으로 새 브랜치를 만듭니다.
# 브랜치 전환
git checkout [브랜치명] # 다른 브랜치로 작업 영역을 변경합니다.
# 현재 브랜치에 다른 브랜치 병합
git merge [브랜치명] # 지정한 브랜치의 변경사항을 현재 브랜치에 통합합니다.
feat: 새로운 기능 추가
- 새로운 기능 추가 시 사용
fix: 버그 수정
- 버그 수정 시 사용
docs: 문서 수정
- 문서 수정/추가 시 사용
style: 코드 포맷팅
- 코드 형식 변경 시 사용
refactor: 코드 리팩토링
- 코드 개선 시 사용
test: 테스트 코드
- 테스트 추가/수정 시 사용
chore: 기타 변경사항
- 기타 모든 변경사항에 사용
feature/기능명 # 새 기능 개발 시
bugfix/버그명 # 버그 수정 시
hotfix/긴급수정명 # 긴급 수정 시
release/버전 # 릴리스 준비 시
Repository → Settings → Branches → Branch protection rules → Add rule
1. Branch name pattern: main
2. Protect matching branches:
✓ Require pull request reviews before merging
- Required approving reviews: 1
- Dismiss stale pull request approvals when new commits are pushed
✓ Require status checks to pass before merging
- Require branches to be up to date before merging
✓ Require linear history
✓ Include administrators
# .github/CODEOWNERS 파일 예시
*.js @frontend-team # 자바스크립트 파일 담당
/backend/ @backend-team # 백엔드 코드 담당
*.test.js @testing-team # 테스트 코드 담당
/docs/ @technical-writers # 문서 담당
Repository (저장소)
Branch (브랜치)
Pull Request (PR)
Issue
feature/login
: 로그인 기능 개발feature/push
: 푸시 알림 기능 개발feature/profile
: 프로필 화면 개발release/1.0.0
, release/2.1.0
hotfix/crash-fix
, hotfix/login-error
CI (Continuous Integration): 지속적 통합
CD (Continuous Deployment): 지속적 배포
git tag v1.0.0 # 태그 생성
git push origin v1.0.0 # 태그 푸시
gitGraph
commit id: "Initial commit"
branch develop
checkout develop
commit id: "프로젝트 초기 세팅"
branch feature/login
checkout feature/login
commit id: "로그인 UI 구현"
commit id: "로그인 로직 구현"
checkout develop
merge feature/login
branch feature/profile
checkout feature/profile
commit id: "프로필 UI 구현"
commit id: "프로필 수정 기능"
checkout develop
merge feature/profile
branch release/1.0.0
checkout release/1.0.0
commit id: "버전 1.0.0 준비"
commit id: "버그 수정"
checkout main
merge release/1.0.0 tag: "v1.0.0"
checkout develop
merge release/1.0.0
branch hotfix/login-crash
checkout hotfix/login-crash
commit id: "로그인 크래시 수정"
checkout main
merge hotfix/login-crash tag: "v1.0.1"
checkout develop
merge hotfix/login-crash
branch feature/push
checkout feature/push
commit id: "푸시 알림 구현"
checkout develop
merge feature/push