본문 바로가기
목차
utils/git and github

[git] switch : branch 전환

by ds31x 2023. 12. 31.
728x90
반응형

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 과 같이 줄 경우, 해당 원격브랜치를 시작포인트로 삼을 수 있음: git switch -c new_branch origin/feature-x
      • --track 을 붙이며 이후 변경사항이 해당 원격브랜치에 적용됨
    • 추가 옵션 원격지의 branch명 대신에 tag 명도 가능함.

https://ds31x.tistory.com/158#2-2.%C2%A0-%ED%98%84%EC%9E%AC-local-repository%EC%97%90-%EC%97%86%EB%8A%94-remote-repository%EC%9D%98-branch%EB%A5%BC-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EC%9D%B4%EB%A6%84-%EA%B7%B8%EB%8C%80%EB%A1%9C

 

[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를 시작하고자 할 때 사용됨.
  • --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


 

728x90