ougi FE

[Github] Issue와 PullRequest, Fork 대해서 알아보자! 본문

Github

[Github] Issue와 PullRequest, Fork 대해서 알아보자!

ougi 2024. 10. 22. 11:19
728x90

오늘은 제가 예전부터 남겨보고 싶던 Issue, 예전에 의미를 모르고 사용했던 Fork, 더 잘 쓰고 싶은 PullRequest에 대해서 글을 써보려고 합니다


❓ Issue란?

먼저 Issue가 무엇인지 설명드리겠습니다

 

이슈(Issue)란 Github에서 프로젝트를 관리하는 기능 중 하나로, 소프트웨어 개발 및 유지보수를 위한 작업 목록, 버그 추적, 기능 개발, 코드 검토 등을 포함하는 모든 작업 항목을 말합니다

 

이슈를 생성하여 관리하면, 이슈에 대한 커밋 내역들을 하나의 이슈 페이지에서 관리가 가능합니다

 

  • 어떤 작업을 해야 하는지
  • 누가 해야 하는지
  • 얼마나 진행됐는지

이런 정보를 이슈에서 묶어서 관리할 수 있습니다

또한 Comment를 이용하여 서로 의견을 주고 받을 수 있어 작업을 단위로 구분하여 협업하기 편하도록 도와줍니다

 

++ 이슈 생성을 하면 이슈번호가 부여 되어 이슈번호를 통해서 이슈 관리가 좋습니다 

#이슈번호 붙여서 커밋 내역 이슈페이지에서 관리할 수 있

🎯 사용법

먼저 저기 보이는 초록색 New issue 버튼을 눌러줍니다

위 버튼을 누르면 이런 화면이 뜨는데 오른쪽에 있는 기능들을 설명드리겠습니다

  • Assigness: 이슈 처리 담당자 지정
  • Labels: 이슈의 카테고리 지정 (기본으로 bug(버그), documentation, duplicate, enhancement, good first issue, help wanted, invalid, question, wontfix가 있고 새롭게 추가하거나 수정 가능)
  • Projects: 이슈를 프로젝트에 연결하여 관리할 수 있는 기능 일정 계획 가능
  • Milestone: 이슈를 달성하기 위해서 중간 목표를 지정하는 기능
  • Development: 개발과 관련된 정보를 보는 기능 (관련 브랜치, PR, commit)

이런 설정들을 하고 제목과 설명을 적고 저기 보이는 초록색 Submit new issue 버튼을 누르면 이슈가 생성됩니다

 

그리고 이슈를 만들어지면 보이는 오른쪽 밑에 옵션들을 설명해드리겠습니다

  • Notification: 알림 설정
  • Lock conversation: 이슈에 대한 토론을 잠구는 기능
  • Pin issue: 중요한 이슈 상단에 고정
  • Transfer issue: 이슈를 다른 프로젝트로 이동시키는 기능
  • Delete issue: 이슈를 완전히 삭제하는 기능

❓ PR(PullRequest)란?

PR은 내가 수정한 코드가 있으니 내 브랜치를 가져가 검토후 병합해주라고 요청해주는 것이라고 볼 수 있습니다

 

PR을 통해서 코드 충돌을 최소화할 수 있고 push 권한이 없는 오픈 소스 프로젝트에 기여할 때 많이 사용한다고 합니다

 

  1. 어떤 기능 개발을 위해 develop 브랜치로부터 분기한 feature 브랜치에서 기능을 개발합니다
  2. 기능 개발을 완료한 feature 브랜치를 develop 브랜치에 개발한 코드와 합병하기 위해 PR 생성합니다
  3. 팀원 간, 코드 리뷰를 진행하고 리뷰를 마친 PR을 합병합니다

🎯 사용법

여기서 New pull request라고 써져 있는 초록색 버튼을 누르면

 base 브랜치(비교 기준이 되는 브랜치)랑 compare 브랜치(그 기준과의 차이를 보여주는 브랜치)를 설정하고 제목과 설명을 적어 Create pull request를 하면 PR이 생성됩니다

 

 


❓Fork란?

Fork는 다른 사람의 repository 에서 내가 어떤 부분을 수정하거나 추가 기능을 넣고 싶을 때 해당 repository 를 내 Github repository로 그대로 복제하는 기능입니다

 

fork한 저장소는 원본 저장소(fork한 다른 사람의 repository)와 연결되어 있습니다

여기서 연결되어 있다는 의미는 original repository에 어떤 변화가 생기면(새로운 commit) 이는 그대로 forked된 repository로 반영할 수 있습니다 이 때 fetch나 rebase 과정이 필요하다고 합니다

 

🎯 사용법

저기 보이는 Fork를 누르고 Create fork라는 초록색 버튼을 누르면 레포지토리가 Fork됩니다

Clone과 차이점

Clone: 로컬저장소에 레포지토리 복사해서 저장

Fork: 원격저장소에 레포지토리 복사해서 저장


 ⭐ 글을 마치며 

오늘은 깃허브의 기능 중 하나인 Issue, PullRequest, Fork에 대해서 다뤄봤는데 여러 기능을 알게 되고 더 잘 활용할 수 있게 된 것 같아서 정말 좋았던 것 같습니다

그리고 사용법만 알고 끝내는게 아니라 좋은 PR, Issue 작성법도 알아두면 좋을거 같습니다 
좋은 협업을 모두가 하셨으면 좋겠습니다!!

 

 

728x90

'Github' 카테고리의 다른 글

[Github, 협업] 좋은 commit message 작성하기😊 (++gitmoji)  (2) 2024.10.22