Branch와 Pull Request

양재혁(Jaehyuk-Yang)·2023년 7월 13일
0

Branch

  • 개념

    • 버전 관리의 분기점을 만드는 기능
  • 버전 관리를 분기 한다는 것

    • 현재 작업 중인 상태 (파일, commit 기록) 그대로, 아예 별도로 관리되는 새로운 폴더를 하나 더 만드는 것

    • 즉, 분기를 하게 되면 그 순간부터 파일과 commit 기록이 별도로 관리

  • 정리

    • 현재 작업 중인 내용을 유지하면서, 파일과 commit 기록을 별도로 관리하고자 할 때, branch를 분기

    • branch를 분기하게 되면, 그 때부터는 파일과 commit 기록이 완전히 별도로 관리

    • branch를 얼마든지 추가로 만들 수 있는데, 항상 원본 branch가 있어야 분기 가능

  • 명령어

    • git switch

      • branch 전환
    • git switch -c (branch명)

      • (branch명)으로 새로운 branch를 만들면서 전환
    • git branch --list

      • 현재 내가 어떤 branch가 있고, 현재 내가 어떤 branch를 수정하고 있는 지 표시
    • git branch -D (branch명)

      • (branch명)의 branch 삭제

Merge

  • 개념

    • 서로 다른 branch의 작업 내용을 하나의 branch로 통합
  • 명령어

    • git merge (branch명)

      • 현재 브랜치에서 (branch명)의 branch merge
    • git log --graph --decorate --oneline

      • commit 기록을 graph로 확인
    • git merge (branch명) --no-ff

      • graph 형식으로 나눠진 commit 기록을 남김
  • merge conflict

    • merge 시, 정확히 어떻게 합쳐야할지를 결정할 수 없을 때 발생

    • 같은 파일의 같은 부분을 수정했을 때 주로 발생

  • fast-forward

    • 새로운 commit 이 생기는 것이 아닌, 그냥 main branch에 develop branch의 commit 기록이 merge 되면서, 아래와 같은 commit 기록이 만들어 지는 것


Pull Request

  • 개념

    • 담당 branch에서의 작업이 완료되었으므로, 이 branch의 코드를 가져가 merge 해달라는 요청을 보내는 것
  • 사용 이유

    • 내가 작성한 코드가 바로 merge될 경우 발생할 수 있는 문제를 미연에 방지

    • 현재 코드에 대한 코드리뷰 진행

    • 프로젝트 진행 상황 관리

  • 명령어

    • git pull origin main

      • merge된 코드를 로컬 main branch에 반영
  • Pull Request Template

## 작업내용
- 작업 내용을 적어주세요.
<br>

## 주요 변경점
- 주요 변경사항에 대해 적어주세요.
<br>

## 유의할 점 (optional)
- 팀원이 유의해야할 변경 사항이나 로직이 생겼다면 적어주세요.
<br>

## To Reviewers (optional)
- 리뷰어에게 부탁할 내용(ex.~부분 도움 부탁합니다, ~부분 한 번 더 검토 부탁드려요) 이 있다면 적어주세요.

Issue

  • 개념

    • 앞으로 구현할 기능 / 버그 fix 등의 할 일을 정리해 놓는 용도
  • Pull Request와 함께 사용

    • Pull Request 시 내용에 Close #(이슈번호)를 넣으면 해당 Pull Request와 해당 이슈번호가 연결되어, 해당 Pull Request가 완료되는대로 자동으로 해당 이슈가 close 되면서 완료 처리
profile
Frontend developer

0개의 댓글