Branch: 분기된 가지 (다른 차원)
● 프로젝트를 하나 이상의 모습으로 관리해야 할 때
ex) 실배포용, 테스트서버용, 새로운 시도용
● 여러 작업들이 각각 독립되어 진행될 때
ex) 신기능 1, 신기능 2, 코드개선, 긴급수정
각각의 차원에서 작업한 뒤 확정된 것을 메인 차원에 통합
이 모든 것을 하나의 프로젝트 폴더에서 진행할 수 있도록!
▶ 브랜치 생성 / 이동 / 삭제 / 이름바꾸기
git branch Branch1
Branch1이란 이름의 브랜치 생성
git branch
브랜치 목록 확인
git switch Branch1
Branch1의 브랜치로 이동
git switch -c Branch2
Branch2 브랜치 생성과 동시에 이동하기
git branch -d Branch3
Branch3 브랜치 삭제하기
git branch -D Branch3
지워질 브랜치에만 있는 내용의 커밋이 있을 경우
즉, 다른 브랜치로 가져오지 않은 내용이 있는 브랜치를 지울 때는
-d 대신 -D로 강제 삭제해야한다.
git branch -m Branch3 Branch4
Branch3 브랜치의 이름을 Branch4로 바꾸기
git log --all --decorate --oneline --graph
여러 브랜치의 내역 편리하게 보기
▶ 서로 다른 브랜치를 합치는 두 방식
● merge: 두 브랜치를 한 커밋에 이어붙이기
브랜치 사용 내역을 남길 필요가 있을 때 적합한 방식이다.
● rebase: 브랜치를 다른 브랜치에 이어붙이기
한 줄로 깔끔히 정리된 내역을 유지하기 원할 때 적합한 방식이다.
이미 팀원과 공유된 커밋들에 대해서는 사용하지 않는 것이 좋다.
▷ merge로 합치기
git merge Branch1
Branch1 브랜치를 master 브랜치로 merge
:wq로 자동입력된 커밋 메시지 저장하여 마무리
merge도 하나의 커밋이기 때문에 merge 하기 전 해당 브랜치의 마지막 시점으로 reset 되돌리기 가능
git branch -d Branch1
병합된 브랜치는 삭제한다.
▷ rebase로 합치기
git switch Branch1
git rebase master
merge와 달리 Branch1을 master 브랜치로 rebase 하고 싶다면
Branch1 브랜치로 이동한 뒤 rebase를 한다.
git switch master
git merge Branch1
master 브랜치로 이동 후 Branch1의 시점으로 fast-forward
git branch -d Branch1
Branch1 브랜치 삭제
▶ Github에서 push 할 것이 있을 시 pull 하는 두 가지 방법
● merge 방식
git pull --no-rebase
● rebase 방식
git pull --rebase
pull 상의 rebase는 다름 (협업시 사용 가능)
▶ 로컬의 내역 강제 push하는 방법
git push --force
▶ Github에서 브랜치 활용
git push -u origin Branch1
Branch1 브랜치 만들기
git branch --all
브랜치 목록 살펴보기
Github에서 Branch1 브랜치 만들기
git fetch
원격의 변경사항 확인
git switch -t origin/Branch1
로컬에 같은 이름의 브랜치를 생성하여 연결하고 switch
git push 원격이름 --delete 원격브랜치명
원격의 브랜치 삭제
※ 참고 사이트
https://www.yalco.kr/@git-github/3-1/
※ 참고 유튜브