본문 바로가기
Git and Github

github 여러가지 기능들(issues, project, milestone, discussion, etc)

by 빠니몽 2021. 3. 16.

 

21.03.15(+21.03.17)

 

1. Issues

프로젝트에 있어 하나의 작업 단위이다.

title에는 작업 내용(커밋메세지 헤드)과 write란에는 description을 기재한다.

오른쪽 카테고리들에서 여러가지를 추가할 수 있다.

  • assignees : 작업을 수행할 예정이거나 수행하고 있는 사람
  • label : 버그픽스, 문서수정 등의 태그. 중복선택 가능
  • project : 현재 진행하고 있는 프로젝트의 칸반보드 선택
  • milestone : 현재 진행하고 있는 프로젝트의 마일스톤 선택

이슈는 open과 close로 나누어진다

  • open : 현재 작업을 진행할 예정이거나 진행하고 있는 상태 
  • close : 현재 작업을 모두 끝마친 상태

* Issue는 todo list와 같다.

* Issue를 파놓는 습관을 들여놓는 것이 좋다!

 

2. Milestone

하나의 목표를 담는 작업 단위이다.

title에는 버전을 기재하며 description에는 구현할 기능들의 목록을 적는다.

마일스톤에도 이슈와 같이 open과 close와 같은 상태표시가 가능하다.

due date를 넘긴 이슈에느 경고표시가 뜨거나 이메일로 알림이 온다. 

이슈에 마일스톤을 태그하면 작업 프로그래스 바를 확인할 수 있다.

 

3. Pull Request

코드 제안, 코드 리뷰, 머지가 이루어지는 곳

* Issues와의 차이점 : Pull Request에서는 리뷰어를 생성할 수 있다.

* 이슈 하나당 하나의 풀리퀘를 하는 것을 추천한다. 리뷰어가 긴 코드를 리뷰하기 힘들기 때문

 

4. Project

칸반보드(kanban board)를 생성하고 관리하는 곳

보통 템플릿으로는 Automated kanban을 쓴다.

add card : 프로젝트에 추가되지 않은 이슈나 풀리퀘를 칸반보드에 추가할 수 있다.

새롭게 생성된 이슈는 todo에, 새롭게 생성된 풀리퀘는 in progress에, close된 이슈는 close에 추가된다.

 

5. Wiki

프로젝트에 필요한 문서를 관리하는 곳

API 명세서 등을 기재한다.

 

6. Discussion

프로젝트에 대해 토론을 할 수 있는 곳

깃헙의 최신 기능이며 이전에는 Issues를 사용했으나 이슈와 토론 사이의 분류가 필요해 생긴 기능이다.

 

7. Pages

정적 사이트를 제공한다

repogitory 이름을 프로젝트.github.io로 기재한 후 푸쉬하면 별도의 빌드 없이 웹 실행이 가능하다.

 

8. gitignore

코드를 푸쉬할 때 올리지 않아도 되는 파일들을 관리한다.

 

9. Secrete

프로젝트의 시크릿 키를 관리하는 곳

API KEY같은 경우 git repo에 올리면 repo를 막는 경우가 있다. 

그렇기때문에 config라는 파일을 생성해서 제이슨 형태로 만들어 import한다.

config파일을 gitignore에 기재하면 API KEY노출 없이 푸쉬가 가능하다.

 

10. Default branch

모든 코드들의 머지가 이루어지는 메인 스트림

보통의 default branch는 develop이다.

잔디는 dafault branch로만 심어진다.

 

11. Issues/Pull request Template

이슈와 풀리퀘를 통일성있게 작성할 수 있게 해주는 기능

어떤 작업을 했는지 쓰는 desc를 통일하고 싶을 때 사용한다.

issue template은 세팅에서 설정할 수 있지만 pull request template는 간단하게 설정하기는 어렵다.

issue template은 세팅을 한 후 커밋해주어야 한다.

 

12. Linked issues

연결된 이슈의 상태를 풀리퀘에서 바꿀 수 있게 해주는 기능

풀리퀘스트와 이슈를 연결할 수 있다.

링크드 이슈를 클릭해서 선택해도 되고 예약어를 써도 된다.

ex) close # 을 치면 자동완성으로 이슈와 풀리퀘목록이 뜬다.

 

13. 개발자들의 최종 작업 플로우

  1. 마일스톤 생성
  2. 프로젝트 생성
  3. 이슈 생성 : 모든 이슈마다 프로젝트와 마일스톤을 연결한다.
  4. -작업 진행-
  5. 풀리퀘스트 : reviewer, assignee, project, milestone, linked issue를 설정한다.
  6. 머지 : 팀원들의 approvement를 받은 후 머지한다.

* 템플릿은 소규모 보다 대규모 프로젝트를 진행할 때 유용하다.