Git을 이용한 협업 workflow에는 여러가지 방법이 있는데, 현재 우리가 사용하고 있는 방법은 Feature Branch Workflow 이다.
Feature Branch Workflow의 핵심은 기능별 브랜치를 만들어 작업하는 것이다. master브랜치는 항상 버그 프리 상태로 유지하며, 병합시 권한을 가진 사용자가 풀 리퀘스트를 적용할 수 있다.
현재 우리의 원격 저장소의 branch는 다음과 같다,
따라서 최종 개발을 위해 기타 branch -> dev-main로 먼저 PR(Pull Request) 후 문제가 없는 버그 프리 상태가 되면 다시 dev-main -> ops-main으로 최종 PR을 하여 merge하고 있다.
하지만 나의 경우 내이름의 branch로만 기능구현에 집중하느라 수많은 commit과 push를 하였음에도 dev-main에 PR을 한번도 하지 못하였는데, 현재 상태에서 PR을 하게되면 원격 저장소의 conflict가 복잡하게 생기게 된다. 처음에는 git pull
기능을 이용하여 특정기능용 branch를 생성하려고 했는데 해보고 나니 내 개인 branch
와 dev-main
branch의 코드가 섞여 문제가 있었따. 그래서 다음과 같은 방법을 사용하여 해결하였다.
git clone -b dev-main <github url>
dev-main
으로 전환하여 잘 clone됐는지 확인하기git checkout dev-main
git checkout -b feat_logo_navigation
git add .
git push origin feat_logo_navigation
dev-main
에 merge되고 이에 문제가 없는게 확인이 되면 최종적으로 ops-main
에 또 PR을 하여 최종 merge하게 된다!