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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions