한 걸음씩 기록하며
#.4 branch 본문
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