8/16_4일차

자햐·2024년 8월 20일

교육

목록 보기
4/51

깃 브랜치 이름 규칙

메인 브랜치(아래의 기능이 필요할 때 메인 브랜치에서 복사함)
1. 기능 개발
2. 출시 준비
3. 긴급 수정

main/master?

원래는 master라는 이름을 썼음

main나뭇가지에서 복사를 해서 다른 나뭇가지 만드는 형식.

main나뭇가지의 원래 이름 : master
근데 2020년인가에 깃허브가 master를 main으로 바꿔버림 (그래서 둘다 씀)

"메인브랜치" <- 이 version까지가 제대로 돌아가는(현재 사용중인) 브랜치다.
현재 v1.2.0이라고 가정하자.

  1. 기능 개발
    : feature/login(로그인기능),
    feature/select-product(상품조회기능) 라는 식으로 표기함

  2. 출시 준비
    : release-1.3, release-1.4(발매, 배포 준비) 식으로 표기

  3. 긴급 수정
    : hotfix-1.2.1(버그수정, 긴급업데이트)식으로 표기

// 브랜치 만드는 실습

  1. git branch feature/login
    git branch feature/select-product
    <- 브랜치 만들기

  2. git checkout feature/login <- 그 브랜치로 이동

  3. git checkout feature/select-product <- select-product 브랜치로 이동

  4. git checkout - <- 이전 브랜치로 이동

  5. git branch <- 현재 존재하는 브랜치 살피기

  6. (기존에 있던 dev브랜치 지우기)
    git branch -d dev

  7. git branch라고 다시 치면 dev브랜치가 브랜치 목록에서 사라졌음을 알 수 있음

  8. 병렬로 기능이 구현되어 있는지 확인하기
    git checkout feature/select-product
    -> 어라 이상하다!


커밋해야 그때부터 브랜치!!

chap8. 깃허브 브랜치 실습

원격에 있는 브랜치 확인하는 방법:
git branch -r

원격에 브랜치를 추가하고 로컬의 브랜치를 원격브랜치에 연결하고 싶다면?
= 깃허브에 브랜치 생성하고 깃 브랜치 복제하기(깃에 만들어둔 브랜치를 원격 브랜치로 복제 -> git push 깃허브저장소별칭 깃브랜치명)

깃 브랜치 전략, fast-forward

깃 브랜치 전략이란?
-> 깃 플로우라고도 부름.

전략 <- 크게 2가지 분류

1. fast-forward (사실 잘 안 쓰임)
A branch에서 B branch를 생성한 시점부터,

  • A branch에는 아무런 추가 구현을 하지 않고,
  • B branch에만 추가 구현을 한 뒤

B branch와 A branch를 합치면
-> A branch에 B branch가 붙으면 그냥 끝남

2. 3-ways
일반적으로 가장 많이 사용하는 전략
A branch에서 B branch를 생성한 시점부터,

  • A branch도 추가 구현을 하고
  • B branch도 추가 구현을 하고

B branch와 A branch를 합치면
-> A branch와 B branch가 서로 비교하여 바뀐 것을 정리하여 합치는 전략

사실상 fast-forward와 3-ways가 합쳐져서 사용됨

pull request & merge

병합이란?

  • 브랜치를 생성한다는 건, "협업"을 위한 것.

  • 그래서 우리는 주로 브랜치 병합(추가 가지 -> base가지)을 "깃허브"에서 함

  • main 브랜치 보호

  • 추가 브랜치 -> main 브랜치 병합 시켜줘! = Pull Request

  • 충돌 일어나나? 자동으로 확인을 해줌
    *PR 메세지 중요함

  • merge
    merge commit도 존재.

  • 추가 브랜치 삭제

merge된 깃허브 -> 깃에 동기화하기

git fetch -p : 가지치기 한다는 뜻. 깃허브에서 삭제된 브랜치가 깃에서는 살아있는 것을 나올 때 치면 delete됨. (다시 깃허브의 브랜치를 깃 브랜치에 동기화 시키는 명령어)

다른 브랜치로 넘어가서 깃허브에서 삭제된 브랜치를 깃에서 삭제하려고 했을 때 : merge가 full로 안됐어! 하는 경고가 뜸
-> 알고보니 깃허브에서는 merge가 됐지만 깃에서는 merge가 안되어서 뜨는 것
-> 그렇다면 git pull origin main(origin에서 main 땡겨오기)해줘서 깃의 커밋목록도 동기화를 시켜주자.(merge커밋이 올라옴)

-> 이후 delete시도하면 브랜치 삭제 됨.

(요약)

충돌 해결하기

git checkout -t origin/feature/1 : 깃허브에 있는 브랜치 로컬에 가져오기 (원격에 있는 브랜치명 : origin/feature/1)

((복습))
1. 브랜치 병합 후 -> 깃허브에서 브랜치 날리기
2. 터미널 와서 git fetch -p : 깃허브 레포지토리와 로컬 상황 동기화
3. git checkout main : 로컬에서 메인브랜치로 이동
4. 메인브랜치에서 git pull origin main (원격의 메인브랜치 상황을 로컬에 끌어오기)
5. git branch -d feature/2 : 방금 깃허브에서 메인에다가 브랜치 병합해서 없어진 브랜치(feature/2)를 로컬에서도 브랜치 없애버리기
6. git branch -> 현재 브랜치 보면서 브랜치가 잘 없어졌는지 확인하기

profile
산업과 예술의 만남에 있는 예비 개발자..

0개의 댓글