Skip to content

협업 가이드 #1

@mcaaa9669

Description

@mcaaa9669

브랜치

  • 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
  • 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 migrate
  • 모델 바꾼 사람
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 add .
  • 특정 파일만 올리기(변경된 파일)
# 변경 파일 확인
git status

#또는 변경 파일만 목록으로
git diff --name-only

#특정 파일만 add
git add 경로/파일명
  • 커밋(commit)
git commit -m "[feat] 설명"
  • 원격 develop에 푸시(push)
git push origin develop

자주 쓰는 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 브랜치에 임의로 푸시 금지

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions