[프로그래머스 데브코스] TIL - 1주차 Day5

방울·2024년 4월 13일
0

Git 고급

git branch 이름 규칙

  • 기능 개발: 각 기능의 개발을 위한 브랜치는 feature/기능 형식
    ex) 로그인 기능 개발하는 브랜치: feature/login
  • 출시 준비: 새로운 버전 출시를 준비하는 브랜치는 release-버전 형식
    ex) 버전 1.3 출시를 위한 브랜치는 release-1.3
  • 긴급 수정: 발생한 버그를 긴급히 수정해야 할 경우 hotfix-버전 형식
    ex) 1.2.1 버전에 대한 긴급 수정은 hotfix-1.2.1

git branch 전략

git flow라고도 부르며, 크게 아래와 같은 두 가지 전략을 많이 사용한다.

fast-forward 전략

기본 브랜치에서 새 브랜치를 생성한 시점부터, 기존 브랜치에는 추가 구현을 하지 않고 새 브랜치에서만 작업을 진행한다. 기본 브랜치에는 변경사항이 없으므로, 브랜치를 병합할 때 단순히 새 브린치의 최신 커밋을 기본 브랜치에 추가한다.

3-ways 전략

새 브랜치를 생성한 뒤 기본 브랜치와 새 브랜치 모두에서 작업이 진행된다. 병합 시점에서 두 브랜치의 차이를 비교하여 병합한다. 대부분의 협업 환경에서 이 방법이 사용된다.


🪄 pr(pull request) 내용 작성 팁

주요 구현 내용

  • 로그인
  • 계정 정보: 아이디(이메일), 비밀번호
  • 비밀번호 알고리즘: __

이슈

  • 알고리즘 구현 시, 에러가 있어서 알고리즘으로 대체

병합(Merge)이란?

기본 브랜치와 새 브랜치 두 개의 브랜치를 통합하는 과정이다. 보통 기능 개발이 끝난 후, 기능 브랜치를 기본 브랜치(main)에 병합하여 모든 변경사항을 통합한다. main 브랜치를 보호하기 위해 pull request 방식을 사용한다.

Pull Request

병합을 실행하기 전에 코드 리뷰를 요청하는 과정이다. 이를 통해 다른 개발자들이 코드를 검토하고, 필요한 변경을 논의할 수 있다. 또한 자동화된 테스트를 실행하여 코드의 안정성을 확인할 수 있다.

동기화 과정

병합이 완료된 후, 로컬과 원격 저장소 간에 동기화 진행하는 방법

  1. git fetch -p 원격 브랜치 목록 동기화
  2. git checkout main 메인 브랜치로 전환
  3. git pull origin main 최신 변경사항 가져오기
  4. git branch -d feature/login 로컬의 불필요한 브랜치 삭제

merge 된 branch는 삭제하고, 다음 기능 개발 구현 시 다시 생성함

충돌 해결하기

💥 브랜치 간에 수정된 내용이 겹치거나, 동일한 파일의 동일한 부분이 다르게 수정되었을 때충돌이 발생했다고 한다. 실습을 통해 충돌 해결하는 과정을 알아보았다.

충돌 발생 확인

브랜치 충돌이 발생하여 merge 할 수 없는 상태, 충돌이 발생했다는 메시지와 함께 어느 파일에서 문제가 발생했는지 확인함

충돌 부분 검토

문제가 발생한 파일에서 충돌 표시(<<<<<<<, =======, >>>>>>>)가 있는 부분을 찾는다. Git이 자동으로 생성해주며, 양쪽 브랜치에서 어떻게 코드가 변경되었는지 보여준다.

충돌 부분 수정하기

충돌이 발생한 부분을 확인하고, 필요한 수정을 결정한다. 이때 어느 코드를 유지할지 선택하거나 새로운 코드를 작성할 수 있다.

병합 완료 및 브랜치 정리

충돌을 해결하고 성공적으로 병합이 완료되면, 더 이상 필요하지 않은 브랜치는 삭제한다.

⛳️ Git History

git history

profile
방울방울

0개의 댓글