git/etc

git 복습 / git branch, merge

부엉이사장 2023. 3. 8. 19:05

# git branch

git branch 브랜치명

브랜치를 생성해보자. 난 sample_modify로 만들었음.

간단히 프로젝트 사본을 만들어버린거임.

 

# 브랜치목록 보기

git branch -v

 

# 브랜치 이동 git switch 브랜치명

git switch 브랜치명

# 커밋로그

git log --oneline --all --graph

순서대로 sample_modify 라는 브랜치가 생성됐고 sample branch modify 라는 커밋이됐음

그리고 메인브랜치로 이동해서 from main이란 커밋이 됐음.

 

 

# merge

먼저 주 브랜치로 이동해야함.

git merge 합칠브랜치이름

여기서 중요한게 충돌할수있음

난 sample_modify에서 커밋한거랑 main에서 커밋한거랑 같은파일에 같은줄을 수정해서

이런식으로 충돌됐다고 코드가 뜰거임.

여기서 걍 코드 원하는대로 수정해주면됨.

난 수정을 하고 확정이 됐다면? 스테이징, 커밋다시해주면됨.

그리고 git log --oneline --all -graph치면

브랜치가 합쳐진걸 볼 수 있음.

 

# 브랜치 삭제

git branch -d 브랜치명

merge 안한 브랜치 삭제는

git branch -D 브랜치명

이렇게 대문자로 써주면됌

 

# rebase

merge랑 비슷한데 쓰는이유는

- 브랜치 많을때 깃로그가 드러워지기때문.

단점은 컨플릭트가 많이 발생함.

 

 

 

 

## merge 방법 세가지

# 3-way merge

브랜치에서 커밋, 주 브랜치에서 커밋 하나이상씩 있을때 합쳐주면서 새로운 커밋 하나 생성해주는거.

기본적인 merge옵션임

 

 

# fast-forward merge

주 브랜치에 커밋이 없을경우

그냥 다른 브랜치를 main브랜치로 해줌.

싫으면 git merge --no-ff로 하면됨.

 

# squash and merge

git merge --squash 브랜치명

깃로그 깔끔하게 하려면 이렇게..

협업할때..