본문 바로가기
DevOps/Linux, Git

[Git] Github에서 협업하기 좋은 것들

by DUSTIN KANG 2023. 12. 7.

Issue

작업이 되는 단위를 의미하며 새로운 기능을 구현(FEAT)하거나 리팩토링(REFACTOR)하거나 수정(FIX)할 때 남기는 내용이다.

이슈를 등록하면 대응하는 feature 브랜치를 생성한다.

 

 

 

💡main and feature/hangman are entirely different commit histories 
만약, feature branch에서 github에 수정 내역을 올릴 때, 아래와 같은 화면이 나타나 merge가 되지 않는 문제가 발생한다면
생성된 브랜치와 이전에 작업했었던 브랜치가 히스토리가 달라 발생한 문제이다.

이러한 경우 겁내할 필요없이 시점을 맞춰주면 해결이 가능하다.
우선, main 브랜치를 `clone`하고 `git pull origin main`으로 시점을 맞춰준다.
그다음에 새로운 브랜치를 생성하여 작업을 진행해주면 된다. 

 

Issue Template

말그대로 이슈 양식이다. 

이슈를 반복 작성하는 불편함을 줄이기 위해 미리 템플릿을 정해놓고 사용하는 것이다.

아래 그림처럼, `Settings - General - Features`에서 확인할 수 있다. Template 파일은 프로젝트 /.github 위치에 추가된다.

이슈 템플릿을 작성하고 [Propose Changes]를 클릭하면 이슈 템플릿을 커밋할 수 있게 된다.

Pull Request

Main 브랜치에 Merge 작업하기전 팀원들에게 코드 리뷰를 요청받는 단계이다.

Reviewers는 리뷰를 해주는 사람이고 Assignee는 리뷰를 작성하는 사람을 말한다.

  • Overview : 대략적인 내용 (Hangman 함수를 작성했습니다.)
  • Change Log : 변경 부분 (문자열을 입력하면 Hangman 리스트를 반환하는 함수를 작성했습니다.)
  • To Reivewer : 리뷰어에게 참고해야할 사항 (예외처리는 아직 진행하지 않았습니다. 추후 작업 하려고 합니다.)
  • Issue Tags : 관련된 이슈 (Closed와 Open 나눠서)

Pull Request

 

Pull Request Template

`.github` 경로에서 `.github/PULL_REQUEST_TEMPLATE.md`를 추가해서 작성하면 된다.

 

 

Tag

특정 커밋에 릴리즈 버전을 기록할 때 사용하는 기능이다.

  • Lightweight Tag : 버전만 기록하는 Tag
  • Annotated Tag : 태그를 생성한 유저(Tagger), 이메일, 날짜, 메시지 등을 함께 기록

Release

git tag v1.0.0
git push origin v.1.0.0
git show