Git

Git (2)

MIRACLE LIFE 2023. 3. 29. 01:19

브랜치

  • git branch 모든 브랜치 보기
  • git branch --all 서버 포함하여 모든 브랜치 보기
  • git branch --merged 현재 브랜치에 머지가 된 브랜치 보기
  • git branch --no-merged 머지가 되지 않은 브랜치 보기
  • git branch -d 브랜치명 브랜치 삭제
  • git branch --move 브랜치명1 브랜치명2 브랜치 이름 변경
  • git log main..test main과 test 브랜치 사이의 커밋만 보기

 


머지

fast-forward merge

- 머지를 할때 원래 브랜치의 변경사항이 없어서 새로운 브랜치로 포인터를 옮기기만 하면됨

- 깔끔함

- 머지가 되었다는 커밋이 남지 않음

   ㄴ git merge --no-ff 옵션 사용시 머지 관련 커밋 생성

 

three-way merge

- fast-forward merge가 불가능한 경우

- git merge 시에 자동으로 머지 커밋 생성

 

conflict 해결

- 같은 파일 동시에 수정시 오토 머지 안됨

- 충돌 부분 해결 후 git add로 파일 추가

   git merge --abort :  머지 취소

   git merge --continue :  머지 계속 (머지 커밋 생성)

 


Rebase

- three-way merge와 같은 상황에 있을때 베이스를 변경하여 fast-forward merge를 가능하게 해줌

- 다른 개발자와 함께 브랜치 위에서 작업하고 있고 이미 히스토리가 서버에 업로드되어있다면 업로드되어있는 히스토리는 리베이스 하면 안됨

- 포인터를 변경하면서 새로운 커밋이 생기기 때문에 나중에 merge conflict이 생길 수 있음

  git rebase main  현재 브랜치의 베이스를 최신 main 브랜치로 변경

  git rebase --onto main 브랜치1 브랜치2  브랜치1에서 파생된 브랜치2의 베이스를 최신 main 브랜치로 변경 (브랜치2를 브랜치1에    상관없이 main 브랜치에 머지하고 싶을때 사용)

 

기타

  • git cherry-pick 해시코드 특정한 커밋만 가지고 오고 싶을 때 유용

'Git' 카테고리의 다른 글

Git (4)  (0) 2023.03.31
Git (3)  (0) 2023.03.30
Git (1)  (0) 2023.03.28