[Git] Branch - 응용편

So'sCode·2024년 3월 4일

❓ 엥 값을 바꾸고 브랜치를 이동했는데 왜 전환이 안돼?

  • 브랜치 적용은 값을 바꾼 후 커밋을 진행해야 적용이 시작됩니다.

Git Branch 이름 규칙

사실은 깃허브에도 명명 규칙이 있다고 하는데 알고 계셨나요?
깃허브 명명 규칙에는 총 세가지가 있습니다.

  • 기능 개발
    • feature/login
    • feature/select-product
  • 출시 준비
    • release-1.3
    • release-1.4
  • 긴급 수정
    • hotfix-1.2.1

Git Branch 전략

깃 플로우 라고도 부릅니다.

2가지 전략

Fast-forward 3-way방식에 대해 알아보고자 합니다.
이전 Branch 설명에서 말했지만 조금 더 예시를 들어 설명해보고자 합니다.

1. Fast-forward 전략
branch간의 병합을 진행할 때 커밋이 생기지 않고 merge 명령어를
실행하는 브랜치의 Head Commit이 병합 되는 branch의 Head commit으로 이동되는 방식 입니다.

.
.
.
?
솔직히 저는 저 설명만 봐서는 조금 이해하기가 힘들었어서 예시와 사진으로 이해해보고자 합니다.

  • master에서 feature를 생성한 시점
    • master에서 에는 아무런 추가 구현을 하지 않고
    • feature에만 추가 구현 한 뒤
    • feature과, master를 합치면 → master에 그냥 feature가 붙으면 끝

2. 3-way 전략

  • branch에서 B branch를 생성한 시점
    • A branch 도 추가구현을 하고
    • B branch 도 추가구현을 하고
    • B branch 와 A branch 를 합치면? → A branch와 B branch가 서로 비교하여 바뀐 것을 정리하여 합치는 전략

Pull Request & Merge

👉 Pull Request를 날리는 이유?
협업 시, 코드에 잘못된 부분, 수정할 부분들을 미리 알기 위해서이다.

1. Pull Request

  • push 후 해당 레포에 들어가면 pull Request 버튼이 활성화 되어있다.

*PR버튼이 따로 보이지 않을경우 👀

  • 해당 repo의 Contribute 클릭 → Open pull Request

branch 룰 만들기
해당 순서는 선택이라 해도그만 안해도 그만이지만 그래도 방법을 적어보려고 합니다:)

  • 해당 repo들어감 → settings → branch 들어가서 룰만들기

2. Pull Request 작성

PR 메시지 → 마크다운이 사용 가능하다

PR 메시지에 들어가야할 내용

  • 주요 구현 내용
    • 로그인
    • 계정정보 : 아이디(이메일) / 비밀번호
    • 비밀번호 알고리즘
    • 등등..
  • 이슈
    • 알고리즘 구현시 에러가 있어서 알고리즘으로 대체

✨ 최근 채용시장에서 PR내역을 제출하라고 하는 곳도 있다. 즉 PR 메시지를 조금 더 신경써서해야함

3. 완료 및 코드리뷰

👉 PR의 코드가 괜찮다면 머지한다. 그렇지 않다면 수정 후 재 PR을 날려한다.

❓ 병합(Merge)이란?

  • 작업 내용 합치기
  • 서로 다른 브랜치에서 작업을 했거나, 작업 내용을 합쳐야 하는 경우 merge를 해주면 됨
  • 병합 순서
    • Pull Request : 추가 브랜치 → main 브랜치 방향으로 병합 시켜줘!
    • 충돌은 깃허브가 자동으로 확인해줌.
    • merge
      - merge commit - merge할때 커밋이 찍힘
    • branch 삭제

merge된 깃허브 → Git에 동기화 하기
상황 : 내 로컬에는 feature/login 이 남아있고, 깃허브에는 feature/login이 지워지고 메인만 남아있는 상태이다. feature/login에서 메인을 동기화 하고싶은 상황.

git pull origin main

  • 현재 상황에서는 해당 명령어가 통하지 않는다.
  • 이유 : 내 현재 위치는 feature/login이지만, 깃허브에서의 해당 브랜치는 삭제되어있는 상황이기 때문이다.

git fetch -p : 깃허브의 브랜치를 나의 로컬 환경에 동기화하는 명령어

  • 위와 같은 상황에서는 해당 명령어를 사용해야한다.

[ 실습 순서 ]
1. git fetch -p : 깃허브 브랜치 목록 동기화
2. (깃 브랜치 삭제) git checkout main → main 브랜치로 가서 삭제하려고함
git branch -d feature/login
3. 그러나, 해당 명령어는 통하지 않아서 깃허브에있는 값을 pull
git pull origin main
4. git branch -d feture/login

profile
이왕하는거미루지말고하자.

0개의 댓글