브랜치
main : 프로덕션 브랜치(최종)
develop: 개발 통합 브랜치(모든 PR은 여기로 날리기)
feat/00: 개인 작업 브랜치(기본)
feat/00-기능명: 추가 브랜치 생성해야 하는 경우
저장소 클론 & 초기 설정
# 저장소 클론
git clone https://github.com/pirogramming/ReCapture.git
cd ReCapture
# develop 브랜치로 이동
> checkout 대신 switch 써도 크게 상관없음
> 현재 작업 브랜치 develop으로 바꾸기
> 원격 develop최신 커밋 가져오기+로컬 develop에 합침(fetch+merge)
git checkout develop
git pull origin develop
가상환경 설정
#가상환경 생성
python -m venv venv
python3 -m venv venv #macOS
#가상환경 활성
venv\Scripts\activate #windows
source venv/bin/activate #macOS/Linux
#성공하면 터미널 앞에 (venv) 표시됨!
requirements 설치/동기화 규칙
📌새 패키지 추가한 사람은 requirements 갱신 커밋 필수
pip install -r requirements.txt
#필요한 패키지 설치
pip install <패키지명> # 예: pip install opencv-python
#requirements.txt 갱신
pip freeze > requirements.txt #⚠️ 반드시 venv 켠 상태에서
#변경 내용 확인
git diff requirements.txt
- 변경된 requirements.txt 받아온 경우
#최신 코드 pull한 뒤에 다시..
#새로 추가된 패키지 설치, 기존 패키지는 자동 스킵/업데이트
pip install -r requirements.txt
마이그레이션 규칙
📌 모델 변경 시 생성되는 migration 파일은 커밋에 포함
python manage.py makemigrations
python manage.py migrate
Merge후 & develop 최신 코드 pull
# develop 브랜치로 이동
git checkout develop
#최신 코드 받아오기
git pull origin develop
#이렇게 하면 로컬 develop = 원격 develop 최신 상태
# develop을 개인 브랜치에 합치기
git checkout feat/00 #개인 브랜치 이동
git merge develop # develop을 내 브랜치에 합치기
원격 develop에 푸시(push)
# 변경 파일 확인
git status
#또는 변경 파일만 목록으로
git diff --name-only
#특정 파일만 add
git add 경로/파일명
git commit -m "[feat] 설명"
자주 쓰는 commit type 모음
[feat]: 새 기능 추가
[fix]: 버그 수정
[docs]: 문서(README 등) 수정
[style]: 코드 동작 변화 없는 스타일 수정(공백, 세미콜론, 포맷)
[refactor]: 리팩토링(기능 변화 없이 구조 개선)
[test]: 테스트 추가/수정
[chore]: 빌드/설정/패키지/잡일(의존성, gitignore, CI 등)
[perf]: 성능 개선
commit 작성 예시
ex) [feat] 로그인 기능 구현
사실 알아볼 수만 있으면 크게 상관 없음..
⚠️주의사항⚠️
- 작업 시작 전 항상 develop에서 최신 코드 pull !!
- 뭐든 문제/상의할 것들 생기면 단톡방에 사소한거라도 다 공유하기!!!
(새벽형 인간이라 확인잘함)
- merge중 충돌 생기면 공유하기!!!
- migration 파일 추가/변경 & requirements.txt 변경/추가 경우에는 꼭 알려주세요
(카톡+PR)
- PR은 develop 브랜치로 생성
- 항상 본인의 feat/ 브랜치에서 작업
- 마이그레이션 파일도 함께 커밋
- develop 브랜치에 임의로 푸시 금지
- main 브랜치에 임의로 푸시 금지
브랜치
main: 프로덕션 브랜치(최종)develop: 개발 통합 브랜치(모든 PR은 여기로 날리기)feat/00: 개인 작업 브랜치(기본)feat/00-기능명: 추가 브랜치 생성해야 하는 경우저장소 클론 & 초기 설정
가상환경 설정
requirements 설치/동기화 규칙
📌새 패키지 추가한 사람은 requirements 갱신 커밋 필수
마이그레이션 규칙
📌 모델 변경 시 생성되는 migration 파일은 커밋에 포함
Merge후 & develop 최신 코드 pull
원격 develop에 푸시(push)
git add .git commit -m "[feat] 설명"자주 쓰는 commit type 모음
[feat]: 새 기능 추가[fix]: 버그 수정[docs]: 문서(README 등) 수정[style]: 코드 동작 변화 없는 스타일 수정(공백, 세미콜론, 포맷)[refactor]: 리팩토링(기능 변화 없이 구조 개선)[test]: 테스트 추가/수정[chore]: 빌드/설정/패키지/잡일(의존성, gitignore, CI 등)[perf]: 성능 개선commit 작성 예시
ex) [feat] 로그인 기능 구현
사실 알아볼 수만 있으면 크게 상관 없음..
(새벽형 인간이라 확인잘함)
(카톡+PR)