
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과 같이 줄 경우, 해당 원격브랜치를 시작포인트로 삼을 수 있음: git switch -c new_branch origin/feature-x- --track 을 붙이며 이후 변경사항이 해당 원격브랜치에 적용됨
- 추가 옵션 원격지의 branch명 대신에 tag 명도 가능함.
[git] branch : branch를 생성하거나 확인 또는 삭제 및 변경
git branchbranch : Branch를 생성하거나 확인하는 명령.1. branch 확인1-1. local branch확인아래와 같이 인자 없이 수행할 경우, 현재 존재하는 branch들 (local repository의)을 보여줌.기본적으로 main (과거엔 master
ds31x.tistory.com
2024.05.26 - [utils/git and github] - [Git] remote, remote add, remote show: 원격저장소와 연결
[Git] remote, remote add, remote show: 원격저장소와 연결
git remote add origin : 원격저장소 연결Local repository와 remote repository를 연결.Remote repository의 단축이름(별칭)을 보통 origin으로 지정.이후, Remote repository url 대신 단축이름(별칭, alias) 으로 처리 가능함.
ds31x.tistory.com
2024.01.01 - [utils/git and github] - [Git] tag: 특정 commit 을 가리키는 별명.
[Git] tag: 특정 commit 을 가리키는 별명.
git tagtag는 특정 commit에 붙이는 별명에 해당하는 이름임.특정 commit을 가르키는 포인터라고 생각하면 됨.release 등 을 할 경우, tag는 v1.0.0 등으로 명명됨.해당 tag를 통해 프로젝트의 특정 시점의 sna
ds31x.tistory.com
예시
- 기존 브랜치로 전환:
git switch main - 새 브랜치 생성 및 전환:
git switch -c new_feature
부가적인 Options
--orphan- 새로운 부모가 없는 새로운 branch를 생성. :
git switch --orphan new_history_branch - 생성되는 브랜치는 commit history 가 없는 상태로 시작 됨.
- 기존 branches와 연관되지 않은 새로운 branch를 시작하고자 할 때 사용됨.
- 새로운 부모가 없는 새로운 branch를 생성. :
--merge- 현재의 작업 중인 branch의 "commit이 되지 않은 변경사항"을 "전환하고자 하는 branch"에 merge(병합) 시키면서
- 해당 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 (작성중)
[Git] Git Summary (작성중)
git이란2024.05.20 - [utils/git and github] - Git : 소개 git 설치 후 해줘야 하는 작업들[Git] git 설치 후 우선 해줘야 하는 작업들 (tistory.com)local repository 초기화2024.05.20 - [utils/git and github] - [Git] init : local repo
ds31x.tistory.com
'utils > git and github' 카테고리의 다른 글
| git restore: commit 이전의 변경사항 취소하기. (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 |