본문 바로가기

PYTHON-BACK

# 24.10.25_ 마켓컬리 클론코딩7_git hub 정리

728x90

 

오늘은 깃허브 merge하는거 정리를 해봤습니다! (매번 헷갈려서 정리하기로함)

 

develp 브랜치에 티원들이 병합한 내용이 들어있고 이 내용을 user브랜치(내 브랜치)로 병합하여 로컬과 원격 저장소에 반영하는 과정을 정리했습니다.

 

1. 현재 작업 중인 내용 커밋

 

git add .
git commit -m "작업한 내용을 커밋"

 

2. 최신 develop 브랜치 가져오기 (develop이 아닌 main에 잘못올리셔서 오늘의 경우 main에서 가져옴)

git fetch origin
git checkout develop
develop git pull origin develop

develop 브랜치의 최신 버전을 로컬에 업데이트 

 

 

 

3. develop 브랜치의 내용을 user 브랜치에 병합 (나의 경우 main 브랜치를 user 브랜치에 병합)

git checkout user
git merge develop

 

 

4. 충돌 해결

충돌이 발생한 경우, 파일을 수동으로 수정하고 다음 명령을 실행하여 충돌을 해결합니다.

 

충돌  확인을 위해서 git status 를 사용

 

 

 

따로 충돌나는 부분은 없었고 db쪽에서 충돌이 발생해 이를 해결하는 과정을 거침

 

본인의 db파일을 사용하려면
git checkout --ours db.sqlite3
git add db.sqlite3

팀원의 db파일을 사용하려면
git checkout --theirs db.sqlite3
git add db.sqlite3

 

해당 코드중 팀원의  DB를 사용하는 것으로 하고 해결함.

 

5. 동작 확인

 

이후 정상적으로 동작하는지 확인하기 위해서 가상환경에 들어가서

pip install -r requirements.txt 를 실행 이후

python manage.py makemigrations 과 python manage.py migrate 을 통해 마이그래이션 진행

이후에 python manage.py runserver를 통해 서버 진행해주면 동작 완료

 

가끔 ./Scripts/activate 를 통해서 가상환경에 진입해도 실행이 안되는 경우가 발생한다. ( python 명령어 입력시 python이 존재하지 않음이라고 나옴)

이때는 deactivate 를 이용해 가상환경에서 나간다음 cd..로 전 폴더로 이동하고 이후 가상환경을 새로 생성해 주면 된다.

이후에는 cd myweb  ./Scripts/activate 를 이용해 다시한번 가상환경에 진입해 주고 이후  pip install -r requirements.txt 을 진행해 주면 된다.

이후에도 동작이 잘 안되는 경우는 마이그레이션 문제일 수 있으니 위에와 같이 python manage.py makemigrations 과 python manage.py migrate 을 통해서 마이그래이션을 진행해주고 python manage.py runserver 를 해주면 된다.

 

이후 동작이 잘 되는지 test를 진행한 뒤 에 다시 user브랜치로 올리는 작업을 진행 

 

올리기 전에는 항상 pip freeze > requirements.txt:  실행

가상환경에 설치된 패키지들의 목록을 업데이트할 때 이 명령어를 실행하는데, 이는 현재 환경에 설치된 패키지를 requirements.txt에 반영하는 작업이다.
보통은 변경 사항이 있을 때(새로운 패키지를 설치하거나 업데이트한 경우) 이 작업을 하지만 빠진 것들이 꽤 많아 pull과 push를 하기 전에 한번 씩 해주는 것이 매우 중요하다!

 

6. user브랜치로 올리기

이제 현재 브랜치가 어디있는지 확인하고 (나의 경우 user)

위 사진대로 git add . / git commit -m "" / git push 진행해주면 해당 내용이 제대로 올라간다.

 

 

 

728x90