한 걸음씩 기록하며

#.4 branch 본문

Git

#.4 branch

Haksae 2021. 12. 22. 16:33

1. Github에는 왜 branch 개념이 있을까?

근본적인 이유는 master에 변경 내용을 반영하지 않기 위해서다.
  • master는 완제품과 같다. 불완전한 변경사항의 적용이 master와 합쳐지는 것을 막기위한, 하나의 작업공간이라고 이해하면 된다.

1) brnach 기본 명령어

  • $ git branch : 현재 branch가 출력된다. (기본이라면 master)
  • $ git branch 브랜치명 : 브랜치명의 브랜치가 만들어진다.
  • $ git switch 브랜치명 : 브랜치명의 브랜치로 이동한다.
    • $ git checkout 브랜치명 : 위와 동일(구 버젼 명령어)
  • $ git switch -c 브랜치명 : 브랜치명의 브랜치를 만들면서 이동한다.
  • $ git tag -a 태그이름 -m 태그설명 브랜치 : 해당 브랜치 커밋에 태그 이름과 설명을 기록한다.
    • $ git tag -a 1.0 -m “first release” master : master 브랜치에 커밋에 1.0이라는 태그와 “first rerlease” 라는 설명을 기록

2) branch 목록 조회

  • $ git branch : 로컬 브랜치 목록 조회
  • $ git branch -r : 원격 브랜치 목록 조회
  • $ git branch -a : 모든 브랜치 목록 조회

3) branch 삭제

  • $ git branch -d 브랜치명 : Local에서 Remotte 브랜치 삭제
  • $ git push origin --delete 브랜치명 : Remote branch 삭제

4) branch 이름 변경

  • 브랜치 $ git branch -m 새로운 브랜치명 : 새로운 브랜치명으로 local branch의 이름을 변경
  • 브랜치 $ git push origin -u 새로운 브랜치명 : 새로운 이름으로된 branch를 remote에서 push
  • 브랜치 $ git push origin -delete 이전브랜치명 : 변경 전 branch를 remote에서 삭제

2. 브랜치 병합

  • test 기간을 거치고, master와 다른 branch를 병합해도 된다고 생각될 때, 브랜치 병합을 한다.
  • 브랜치를 병합하는 방법으로는 두 가지, Merge와 Rebase가 있다.

 

  • $ git merge 병합할 브랜치명
    • master에서 $ git merge 병합할 브랜치명을 실행하면, 다른 브랜치를 병합하는 커밋 로그가 master의 Head로 새로 추가된다.

  • $ git rebase 병합할 브랜치명
    • master에서 $ git rebase 병합할 브랜치명을 실행하면 다른 branch를 베이스로 커밋을 재정렬한다.

  • $ git rebase 병합할 브랜치명를 하면 커밋도 새로 쓰고, 정렬도 새로하기 때문에 기존의 커밋트리가 완전히 달라진다.
  • 즉 master에서 분기했던 브랜치가 master와 병합할 경우 많은 충돌을 직면할 수 있게 된다는 것

  • Merge Conflict
    • 병합할 브랜치가 같은 파일과 부분을 커밋하면 충돌하게된다.
    • 이 때는 충돌된 부분을 직접 수동 병합해야한다.

'Git' 카테고리의 다른 글

#.6 Github Flow  (0) 2021.12.22
#.5 Git Flow  (0) 2021.12.22
#.3 Remote  (0) 2021.12.22
#.2 Git Local 명령어 정리  (0) 2021.12.22
#.1 Git 이란?  (0) 2021.12.22
Comments