git switch -c 새로 만들 브랜치명 ( 전 버전에서는 git checkout -b )
브랜치 삭제하기
git branch -d 삭제할 브랜치명
브랜치 강제 삭제하기
git branch -D 강제삭제할 브랜치명
지워질 브랜치에만 있는 내용의 커밋이 있을 경우 즉 다른 브랜치로 가져오지 않은 내용이 있는 브랜치를 지울 때는 강제 삭제
브랜치 이름 바꾸기
git branch -m 기존 브랜치명 새 브랜치명
각각의 브랜치에서 서로 다른 작업해보기
main 브랜치에서 해당 작업 해보기
add-coach 브랜치에서 해당 작업 진행 해보기
new-teams 브랜치에서 해당 작업 해보기
결과
터미널에서 여러 브랜치의 내역 편리하게 보기 ( git log --all --decorate --oneline --graph ) 줄기도 확인 가능
소스트리 결과
서로 다른 브랜치를 합치는 두 방식
merge
두 브랜치를 한 커밋에 이어붙입니다.
브랜치 사용내역을 남길 필요가 있을 때 적합한 방식
merge
rebase
브랜치를 다른 브랜치에 이어붙입니다.
한 줄로 깔끔히 정리된 내역을 유지하기 원할 때 적합
이미 팀원과 공유된 커밋들에 대해서는 사용하지 않는 것이 좋다
rebase
merge로 합치기 ( 실습 )
add-coach 브랜치를 main 브랜치로 merge
main 브랜치로 이동
git merge 합칠 브랜치 // 해당 명령어로 병합
결과
병합 된거 확인
merge는 reset으로 되돌리기 가능
merge도 하나의 커밋이기 때문에 되돌리기 가능
Hard로 진행
merge 하기 전 해당 브랜치의 마지막 시점으로 돌아갈수 있음
다시 병합 해주고
병합된 브랜치는 삭제
rebase로 합치기
new-teams브랜치를main브랜치로rebase
new-teams 브랜치로 이동 ( merge때와는 반대 )해당 명령어로 병합main 브랜치가 뒤에 있는 상황 맨 앞으로 옮겨줘야됨main브랜치로 이동git merge new-teams 해당 명령어로 new-teams의 시점으로 fast-forward
new-teams 파일 추가 된 모습new-teams 작업이 main에도 적용된거 확인
병합된 브랜치는 삭제new-teams 제거 완료
충돌 해결하기
브랜치 간 충돌 ( 실습 )
파일의 같은 위치에 다른 내용이 입력된 상황
상황 만들기
해당 소스트리처럼 만들어짐
merge 충돌 해결하기
git merge conflict-1로 병합을 시도하면 충돌 발생
main 브랜치로 이동merge를 하게되면 오류 메시지와컴퓨터에서 어떤걸 사용할껀지 선택 하라고 나옴 ( 사진처럼 나오는 이유는 에디터때문에 )수신 변경 사항 수락 선택 ( 충돌 부분 수정 완료 )수정 완료 후 git add . / git commit 진행:wq 저장 후 종료소스트리에서 확인 해보면 main과 conflict-1 병합 된거 확인
위에 같은 상황에는 수정할게 1개 밖에 없어서 수정이 쉽지만
만약에 당장 충돌 해결이 어려울 경우 아래 명령어로 merge 중단
git merge --abort
rebase 충돌 해결하기
conflict-2에서 git rebase main로 리베이스 시도하면 충돌 발생
conflict-2 브랜치로 이동git rebase main 하게 되면 오류 메세지 나옴git status 명령어 입력시 양 브랜치에서 이파일이 건드릴라고 한다. 선택을 해달라 메세지 나옴merge랑 동일하게 vscode에서 선택 가능수신 변경 사항 수락 ( 충돌 수정 완료 )
git add .이번에는 commit이 아니라 continue ( 충돌이 모두 해결될 때까지 반복 )일단 commit을 하라고 나옴 :wq 저장 후 나가기또 다시 다른거도 충돌 났다고 수정해달라고 요청여기선 현재 변경 사항 수락 선택 ( 선택은 자유, 수정도 가능 )