Git, Git Study Chap.6

Lilmeow·2023년 8월 30일
0

Git, GitHub

목록 보기
9/9
post-thumbnail

Chap.6 GitHub 100% 활용하기

01_GitHub Profile 꾸미기

1) Profile Update

  1. Profile Image 변경
  2. Edit Profile : 정보 추가 입력
  3. Emoji 표현

2) Profile README Repository 생성하기

Profile README 꾸미기 : Profile README Repository 생성
일반적인 Repository와는 다른 특별한 Repository

3) Profile README File Update

Edit README를 통해 내용 수정, MD문법 사용 가능, 수정 후 Commit Changes

02_더 좋은 Pull Request 만들기

1) 의미를 담은 제목 짓기

제목을 지을 때는 한 번에 너무 여러 가지 기능을 개발해서 작성하지 말고 되도록 하나의 기능만 담을 수 있게 하는 것이 좋다.
변경 사항의 분류는 다음 표를 기준으로 작성.
변경 사항의 의도 전달과 History 파악에 도움이 된다.

2) 변경 사항을 잘 담은 내용 적기

나의 코드를 Review해 줄 개발자를 배려하여 변경 사항을 빠르게 파악할 수 있도록 핵심을 담아서 작성
다음은 들어가면 좋은 내용이다.
이외에 더 세부적으로 Review받고 싶은 곳이나 부가 설명이 필요한 코드가 있다면 본인 PR(Pull Request)의 코드에 본인이 직접 Review를 다는 것도 좋은 방법.

3) Pull Request를 Merge하는 세 가지 방법

Merge pull request Dropdown 버튼을 클릭하면 PR을 Merge하는 3가지 방법이 존재.
3가지 모두 장점이 뚜렷하니 협업자들과 논의하고 원하는 방법을 선택.

  • Create a Merge Commit
    가장 기본적인 방법.
    두 Branch Status를 비교해서 새로운 Commit을 만들면서 코드를 Merge
  • Squash and Merge
    Commit2와 Commit3의 변경 사항을 한 덩어리로 취급하여 Commit4에 Merge.
    Pull Request에 Commit을 아무리 많이 올렸어도 Main Branch의 Commit History에는 Pull Request마다 Commit 1개만 남는다는 장점이 존재.
    따라서 Main Branch의 History가 한 줄로 깔끔하게 남는다.
  • Rebase and Merge
    GitHub에서 자동으로 해 주는 Rebase.
    본인의 Commit History를 그대로 살려서 최신 Main Branch에 붙이는 Merge방식.
    Main Branch에서 Commit History를 모두 볼 수 있다는 특징이 있다.
  • Merge 방식 제한
    : Repository Setting Page의 General Menu로 들어가면 Pull Request 항목에서 Merge 방식을 제한할 수 있다.
    본인이 선호하는 방식을 고른 후 이외의 방식은 제한해두면 Main Branch History를 일관되고 깔끔하게 관리할 수 있다.

03_GitHub에서 Pull Request 되돌리기

1) Revert 실습 준비하기

Commit을 Revert하면 해당 Commit을 되돌리는 새로운 Commit이 만들어진다.
실무에서는 예상 밖의 문제를 겪어 Pull Request 전체를 Revert해야 되는 상황이 올 수도 있다.
그렇다면 Pull Request에 속한 Commit들을 전부 Revert하고 싶을 때는 어떻게 할까?

2) Pull Request를 한꺼번에 Revert

Pull Request의 Commit을 Git으로 Revert한다고 하면 절차가 매우 복잡할 것이다.
1. Local Repository의 Default Branch를 Main Branch로 변경
2. GitHub Repository의 내용을 가져온다.
3. 작성한 Commit들을 Revert
4. 다시 Push 후 Pull Request를 보낸다.

하지만 이러한 절차를 GitHub에서는 간단하게 할 수 있다.
1. Pull Request가 완료된 Page 하단의 Revert 클릭
2. Revert를 위한 Pull Request가 새로 만들어지면 Create pull request 버튼 클릭
3. Merge pull request 버튼과 Confirm merge 버튼을 클릭하면 Pull Request Revert 완료.
4. Local Repository에서 Main Branch Checkout 후에 Pull

04_Branch Protection

1) 특정 Branch Protection Rule 만들기

GitHub에서는 용도에 따라 특정 Branch를 보호할 수 있다.
이때 사용하는 것이 Branch Protection Rule.
이것을 통해 다양한 규칙으로 Branch에 위험한 작업이 수행되는 것을 막을 수 있다.

  1. GitHub > Repository Page > Settings > Side Menu - Branches
  2. Branch Protection Rules 항목의 Add Branch Protection Rule 버튼 클릭
  3. Branch Name Pattern 항목에 지정할 Branch Name을 입력
    : main을 입력하면 Main Branch에 Rule 적용
    feat*를 입력하면 feat로 시작하는 모든 Branch에 Rule 적용
  4. Protect Matching Branches 항목에는 Require a Pull Request Before Merging과 Require Approvals 옵션에 체크한다.
    이 두 옵션을 함께 사용하여 Review를 강제하고 Branch를 보호한다.
    이제 지정된 Main Branch에는 반드시 다른 Branch Commit들의 Pull Request를 통해서만 Commit이 생성된다.
    Require Approvals 옵션은 지정된 숫자만큼의 Reviewer 승인이 있어야만 Pull Request Merging을 할 수 있게 하는 옵션이다.
  5. Do Not Allow Bypassing the Above Settings 옵션도 체크 후 Create
  • Repository의 Branch Settings Page의 Branch Protection Rules 항목을 보면 규칙이 생성된 것을 확인 가능.

  • 이제 Local에서 Main Branch에 직접 Commit을 만들고 Push하면 Error 발생.

  • GitHub - Pull Request Tab에서 아무 Branch를 생성한 후 아무 파일 내용을 수정하여 Commit하고 Push, Pull Request 생성하기.
    그러면 최소 하나 이상의 Review 승인이 필요하기 때문에 Merge가 차단된다.(Pull Request 작성자는 당연히 스스로 승인 불가)

  • 만약 다른 사람이 해당 Review에 Comment와 함께 승인을 하면 Merge 가능.

  • 개인 Repository에서는 Require a Pull Request Before Merging 규칙이 불필요하므로 체크 해제.
    하지만 Main Branch와 같은 중요한 Branch는 최소한의 보호를 위해 강제 Push나 직접 Commit을 막아 두는 것이 좋다.

0개의 댓글