git

[git] 6. GIT 브랜치 (git branch, git switch, git log, git merge, git merge -d)

jeri 2024. 7. 7. 16:57
반응형

01. 브랜치 생성 및 이동 (git branch, git switch)

  • branch = 프로젝트 복사본

 

  • 쿠폰기능 추가
    • 프로젝트 복사본 만들어서 먼저 개발해보기
    • 브랜치 생성!
##coupon 브랜치 생성 (프로젝트 복사본 생성)
git branch coupon
## coupon 브랜치로 이동
git switch coupon
## main 브랜치로 이동
git switch main


## 어떤 브랜치에 있는지 확인
git status

 

 

 

 

02. main 브랜치와 coupon 브랜치에서 각각 커밋 후 확인 (git log)

  • git log 시 HEAD : 현재 내 위치
## 명령을 시각화해줌
git log --graph --all --decorate


## branch 와 commit  내역을 그래프로 한눈에 보고싶을 때
git log --graph --oneline --all

 

 

03. 브랜치 합치기 (git merge)

## main 브랜치로 이동
git switch main

## coupon브랜치 코드들이 main브랜치에 합쳐짐
git merge coupon

 

 

 

 

04. merge 시 주의사항 (git conflict)

해피엔딩

충돌 (conflict)

  • 합칠 때 주의사항
    • main 브랜치와  coupon 브랜치에서 같은 파일, 같은 줄을 수정했을 경우 merge conflict 발생
    • 이 경우 에디터로 해당 파일 열어보면 충돌사항 적혀있음

 

 

05. merge의 종류

1) 3-way merge

  • 브랜치에 각각 신규  commit이 1회 이상 있는 경우 merge 명령을 내리면 두 브랜치의 코드르 합쳐서 새로운 commit을 자동으로 생성해줌

2) fast-forward merge

  • 새로운 브랜치에만 commit이 있고, 기준이 되는 브랜치에는 commit이 없는 경우 merge 시 "fast-forward merge" 라고 알려줌
  • 뜻 :
    • 딱히 합칠게 없어서 그냥 신규 브랜치보고 "지금부터 니 이름이 main브랜치다!!!!"
    • 기준이 되는 브랜치에 신규 commmit이 없으면 자동으로 발동됨
    • 이게 싫으면 git merge --no--ff 브랜치명 해서 강제로 3-way merge도 가능

 

 

 

06. 필요없는 브랜치 삭제 (git branch -d)

  • 어떤 방식이든 merge 해도 브랜치가 자동으로 삭제되지는 않음
  • 명령어 입력으로 삭제 필요
## merge완료된 브랜치 삭제하는법
git branch -d 브랜치이름

## merge안한 브랜치 삭제하는법
git branch -D 브랜치이름
반응형