항해99 본과정 시작 전 3일살이 flask 웹 미니프로젝트 진행중 기억하고 싶은 것들 정리
먼저 브랜치의 구조는 master, dev, features 등으로 정리했다.(우리 팀장님 제안, 팀장님 최고)
왼쪽 사진의 구조로 작업을 진행했다.
master 브랜치는 배포용으로 배포 이전에는 건들지 않기로했고, dev 브랜치, dev브랜치에서 나오는 feature브랜치로 나누어서 작업하기로 했는데, 어떤 기능 구현이 진행되고있는지도 한눈으로 확인할 수 있어 개발 진척도 관리가 편리할 것 같다.
각 feature브랜치에서 각자의 맡은 기능을 구현하고 dev에 merge하고 다른사람들이 merge된 dev브랜치에서 다시 새로운 기능 구현을 위해 새로운 feature브랜치에서 작업하고... 반복이다
최대한 Feature별로 브랜치를 나누어 작업하고자 했고, 작업이 완료되어 dev 브랜치에 merge되고 남은 브랜치는 삭제, 공용의 dev 브랜치에 merge할때는 팀장님과 함께 브랜치간 다른 부분을 협의하면서 merge했다.
. (왼쪽처럼 다 draw.io에서 그리고나니까 git kraken 이라는 좋은 프로그램이 있었음을 알게 되어서.. 수작업으로 그린 사람 됐음)
아무튼 이런 구조로 작업하기로 약속하고, 실제로 진행한 결과는 git kraken에서 확인해봤다.
작업 도중 중간에 "print가 안 돼" 라는 커밋메세지와 함께 revert한 기록이 있는데,
작업하던 브랜치에서 문제가 생겨서 작업하던걸 다 고의로 revert해서 이전 commit 상태로 돌아가 다시 작업한 기록이다.
개발하다가 문제가 생겼을 때 이전으로 되돌아가서 작업할 수 있다는 것을 알기만 했지 commit하는 습관도, merge하는 방법도 branch 구조를 관리하는 방법도 아예 몰랐던 터라 도전하면서 배우는 경험을 했다.
branch 사용간에 특히 어려웠던 부분은 아래에서 설명.
- master 브랜치
- dev 브랜치
- feature 브랜치
- dev 내용 master에 merge한 시점
- master내용 feature에 merge한 시점
3번의 feature 브랜치에서, 초기 단계의 (1번 상태)의 프로젝트 구조로 작업하고있었는데, 기능 구현을 완료하지 못하고 자고 일어나서 보니 4번에서 전체적인 프로젝트의 구조 변경 및 html 상속을 위한 부모 html이 추가되었다(merged)
프로젝트의 구조 변경을 내 3번 브랜치에 적용하고싶어서 어쩔 수 없이 히스토리가 다른 4번의 master브랜치 상태와 3번의 내 예전 구조 branch를 머지하는 작업을 진행했다. 처음 해보는 골치아픈 merge라서 정말 어려웠다.