GitHub 협업에 필요한 기능 정리

아래 포스트를 참고하여 작성했습니다
개요
GitHub는 협업과 체계적인 개발 관리를 위해 Issues와 Projects 기능을 제공한다
Issues
이슈는 작업의 버그 수정, 새로운 기능, 개선해야하는 기능 등 작업의 모든 단위이다. 미리 해야할 작업을 이슈로 올려놓고 하나씩 기능을 구현하며 작업을 진행한다. 작업이 끝나면 close를 통해 작업을 종료한다.
Projects
Issues를 보드 형태로 시각화하여 전체 작업 흐름과 진행 상태를 한눈에 관리하는 기능
연습해보기
레포지토리를 만들면 상단 메뉴에 여러가지가 있는데 그 중 Issues와 Projects를 볼 수 있다

Projects
Projects에 들어가면 오른쪽에 New project가 보인다

New project를 누르고

Board를 눌러

프로젝트의 이름을 정하고 Create project를 누른다

현재는 아무런 Issue가 없어 비어있지만 "할 일", "진행중", "완료" 칸이 나온 것을 볼 수 있다

Done 오른쪽에 +를 눌러 열을 추가할 수 있다

Back log 열을 추가하였다
Back log: 우선순위가 정해지지 않았거나, 당장은 아니지만 나중에 할 작업들을 모아두는 대기열. "일단 기록은 해두자"
Todo: 이번 스프린트/주차에 실제로 할 작업. 우선순위가 정해진 것들
In Progress: 현재 진행중인 작업들
Done: 완료된 작업들
해당 구조로 작업할 예정이다
Issues
Issues에 들어가면 오른쪽에 New issue가 보인다

New issue를 누르면 새로운 issue를 만들 수 있는 화면이 나온다

여기서는 이슈를 발생시키는 제목을 적고 이슈에 대한 내용을 상세히 적어준다
오른쪽 Assigneers, Labels, Projects, Milestone을 볼 수 있다
- Assigneers: 해당 작업의 담당자 (이슈의 담당자)
- Labels: 해당 작업의 성격
- Project: 위에서 만든 프로젝트 중 어디에 넣을지
- Milestone: 프로젝트가 도달해야하는 목표 지점
이슈를 위처럼 만들 수 있지만 깃허브 템플릿을 이용하면 issue를 형식적으로 만들 수 있다

만드는 방법은

.github/ISSUE_TEMPLATE경로에 yml파일로 이슈 형식을 작성하면 된다
Milestone
마일스톤이란 프로젝트가 도달해야 하는 목표지점을 지정해두는 것
주 단위로 만들 수 있으며, 기능 단위로도 만들 수 있다.
Milestone을 사용하면 진행 상황을 표현할 수 있음!

Create milestone을 하면 제목, 기간 설정을 할 수 있다 (무슨 작업을 언제까지 할 건지)

현재 Milestone에 이슈가 없어 0% 지만

이슈 두개를 만들고 Milestone을 Practice로 설정하면

issue 2개 중 아직 0개를 완료했다고 나온다
Pull Request로 이슈 다루기

우선 branch를 하나 만들고


파일을 새로 하나 만들어서 만든 브랜치에 push를 해줍니다

그럼 새로운 branch가 생겼고

Pull Request를 들어가서

New pull request를 누릅니다

pull request할 브랜치(feature/practice)를 선택후

Create pull request 클릭

제목과 함께 본문에 close할 이슈 번호를 적어주면 해당 이슈를 자동으로 close해준다


팀원들과 코드 리뷰 후 Merge를 한다

그러면 projects를 보면 해당 이슈가 자동으로 Done으로 옮겨지고

Milestone도 2개 중 1개가 완료 되었다는 것을 볼 수 있다.
팀플을 제대로 안해봐서 아직도 제대로 된 사용법을 잘 모르지만
Issues, Projects, Milestone을 통해 전체적인 프로세스를 이해할 수 있었다.





