본문 바로가기
utils/git and github

[git] switch : branch 전환

by ds31x 2023. 12. 31.

git switch

git switch 는 Git 2.23 버전에서 도입.

  • branch 전환working tree 를 최근 commit 상태 로 돌리는 등의 다양한 기능을 수행하던 git checkout
  • git switchgit 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: 원격저장소와 연결

 

[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 master
  • 새 브랜치 생성 및 전환: git switch -c new_feature

부가적인 Options

  • --orphan
    • 새로운 부모가 없는 새로운 branch를 생성. : git switch --orphan new_history_branch
    • 생성되는 브랜치는 commit history 가 없는 상태로 시작됨.
    • 기존 branches와 연관되지 않은 새로운 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 (작성중)

 

[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 rep

ds31x.tistory.com