팀 프로젝트를 진행하기에 앞서 여러 컨벤션을 정하고 있는 요즘 Github과 관련한 정보를 수집하며 적응하는 시기에 들어서고 있다. 대표적으로는 Git flow 형식으로 branch를 다루는 것이었는데, 이번에는 Project와 Issues 사용을 위해 기본적인 내용과 관리 방법을 알아보고자 한다.
참고 자료
프로젝트는 작업 현황과 진행도를 확인할 수 있는 기능이다. Issues, PR(풀 리퀘스트)을 하나의 작업으로 구분해 해당 작업이 어느 정도 진행되었는지 확인할 수 있다. Issues는 프로젝트를 진행하면서 발생하는 모든 이슈(PR, 버그 발생 등)의 관리를 위해 깃헙에서 제공하는 기능이다.
Project를 생성할 때, 아래와 같은 분류를 통해 프로젝트의 진행 상황을 한 번에 파악할 수 있다.
- To Do : 해야 할 작업
- In Progress : 진행 중인 작업
- Done : 완료된 작업
- 🆕 New
- 처리되지 않은 새로운 작업 항목.
- 작업에 대한 할당 또는 우선순위가 정해지지 않은 초기 상태.- 📋 Backlog
- 기능 요구 사항, 버그 또는 기타 작업 아이디어를 모아두는 곳.- 🔖 Ready
- 작업 세부 정보, 할당된 리소스, 우선순위 등을 결정하는 곳.- 🏗 In progress
- 작업이 진행 중인 상태.- 👀 In review
- 리뷰 또는 검토 단계.- ✅ Done
- 작업이 완료되고 검토를 마친 상태.
일정 관리에 용이하고, backlog 뷰에서 각 작업이 어떤 스프린트에 해당하는지 한 눈에 확인할 수 있어 편리하다.
스프린트는 <Agile 방법론>과 함께 하면 더욱 빛을 내는 기능이다. 링크한 페이지에 스프린트에 대한 자세한 설명도 들어있으니 참고하자.
Project 내에서 설정이 변경되면 파란 원(🔵)으로 무엇인가 변경되었다는 알림이 뜬다. 이때, Save 버튼을 눌러주어야 저장이 되니 수정 내역을 날리지 않도록 주의하자!
버그 수정, 추가 기능, 개선 기능 등 모든 활동 내역이 해당된다. Issue를 만들면 "Issue를 열었다(open)", 작업이 끝나 Issue를 정리하면 "Issue를 닫았다(close)"고 표현한다.
Issue 생성은 Github에서만 진행할 수 있다. Issue를 생성할 때, 다음 옵션을 설정할 수 있다.
- Assigneers: 해당 작업의 담당자
- Labels: 해당 작업의 성격
- Project: 소속 Project 설정
- Milestone: 프로젝트 목표
Label은 기본적으로 제공되는 종류가 있지만, 직접 변경할 수도 있다. 값을 수정해 우리 팀만의 Label을 설정하는 것이 프로젝트를 관리와 협업에 용이할 것 같다. <추천하는 Label 설정>
커밋을 할 때, 커밋 메시지에 #이슈번호 형태로 입력하면 자동으로 해당 커밋을 인식해 연결해주기 때문에 연관 작업의 관리가 쉬워진다.
git commit -m "#3 모달 컴포넌트 추가"
-m 옵션을 사용하지 않고 여러 줄로 커밋 메시지를 남기면 에디터의 주석을 나타내는 기호(#)와 이슈 번호 기호가 충돌되어 주석처럼 동작하게 된다. 이럴 때는 커밋 코멘트의 주석 기호를 변경하면 된다.
git config --global core.commentChar ';'
위 코드는 주석 기호를 ;로 변경하는 코드이다. 자신이 사용하기 편한 기호로 변경하자. 단, // 기호로 변경 시 에디터에서 오류가 발생하니 주의가 필요하다.
"git 키워드 #이슈 번호" 로 이슈를 자동 close 할 수 있다. 다음은 사용할 수 있는 키워드의 종류다. (어떤 키워드를 입력해도 종료된다)
- close, closes, closed
- fix, fixes, fixed
- resolve, resolves, resolved
터미널을 이용하지 않고, <Github PR → merge 시 issue를 자동으로 close하는 방법>도 존재한다.