git switch
git switch
는 Git 2.23 버전에서 도입.
- branch 전환 과 working tree 를 최근 commit 상태 로 돌리는 등의 다양한 기능을 수행하던
git checkout
을 git switch
와git restore
로 분리하면서 등장함.
git switch
는
branch를 전환하는 기능에 특화되었고
보다 쉽게 branch 작업을 하도록 해 줌.
기본적인 사용
- branch 전환:
git switch <브랜치명>
을 사용하여- 기존의 다른 브랜치로 전환.
git switch -
: 바로 직전 작업하던 branch로 전환.
- 새 브랜치 생성 및 전환:
git switch -c <새 브랜치명>
를 사용하여- 새 브랜치를 생성하고 해당 브랜치로 바로 전환.
- 추가 옵션으로 원격지의 branch명을 `origin/feature-x` 과 같이 줄 경우, 해당 원격브랜치를 시작포인트로 삼을 수 있음.
- 추가 옵션으로 tag 명도 가능함.
2024.05.26 - [utils/git and github] - [Git] remote, remote add, remote show: 원격저장소와 연결
2024.01.01 - [utils/git and github] - [Git] tag: 특정 commit 을 가리키는 별명.
예시
- 기존 브랜치로 전환:
git switch master
- 새 브랜치 생성 및 전환:
git switch -c new_feature
부가적인 Options
--orphan
- 새로운 부모가 없는 새로운 branch를 생성. :
git switch --orphan new_history_branch
- 생성되는 브랜치는 commit history 가 없는 상태로 시작됨.
- 기존 branches와 연관되지 않은 새로운 branch를 시작하고자 할 때 사용됨.
- 새로운 부모가 없는 새로운 branch를 생성. :
--merge
- 현재의 작업 중인 branch의 commit이 되지 않은 변경사항을 전환하고자 하는 branch에 병합시키면서
- 해당 branch로 전환함.
- 현재 branch의 commit 되지않은 변경사항을 main 브랜치에 병합시키면서 main으로 전환. :
git switch --merge main
- conflict 가 발생하기 쉽다는 단점이 있음.
--keep
--merge
와 유사한 옵션.- 단, commit이 되지 않은 변경사항을 대상 branch에 병합시도하며, 이 때 conflict가 발생할 경우 해당 branch로 전환되지 않음.
- 작업 중인 변경사항이 안전하게 유지되어야 할 때 유용함.
git switch --keep main
: main 으로 전환하면서 현재 브랜치의 변경사항은 해당 main에 병합을 시도하나, conflict 가 발생할 경우 전환되지않음.
같이 읽어보면 좋은 자료들
2024.05.20 - [utils/git and github] - [Git] Git Summary (작성중)
'utils > git and github' 카테고리의 다른 글
[git] restore : 이전 상태로 되돌리기. (1) | 2024.01.01 |
---|---|
[Git] log: commit history 살펴보기 (0) | 2023.12.31 |
[git] stash : 현재 작업을 임시 저장 (1) | 2023.12.31 |
[git] branch : branch를 생성하거나 확인 또는 삭제 및 변경 (0) | 2023.12.30 |
[git] revert : 특정 commit 취소하기. (1) | 2023.12.30 |