내 잡다한 노트

Git switch와 checkout의 차이 본문

Git

Git switch와 checkout의 차이

peanutwalnut 2024. 11. 25. 18:00

git switch와 git checkout은 브랜치 이동 및 생성과 관련된 명령어입니다. git switch는 Git 2.23(2019년 릴리스)부터 추가된 명령어로, 기존에 과도하게 많은 역할을 담당하던 git checkout의 기능을 일부 분리한 명령어입니다.

 

 

1. 기능 비교

git checkout

  • 역할:
    • 브랜치 변경.
    • 브랜치 생성 및 이동.
    • 특정 커밋이나 파일 체크아웃.
    • 작업 디렉터리의 파일 복구.
  • 예제:
  • # 브랜치 이동
    git checkout feature/login

    # 새로운 브랜치 생성 및 이동
    git checkout -b feature/new-branch

    # 특정 커밋 체크아웃
    git checkout <commit-hash>

    # 파일 복구
    git checkout HEAD~1 -- file.txt

git switch

  • 역할:
    • 브랜치 이동.
    • 새로운 브랜치 생성 및 이동.
    • 파일 복구나 특정 커밋 체크아웃은 지원하지 않음.
  • 예제:
  • # 브랜치 이동
    git switch feature/login

    # 새로운 브랜치 생성 및 이동
    git switch -c feature/new-branch

제한:

  • git switch는 브랜치 작업에만 초점을 맞춤.
  • 파일 복구나 특정 커밋 체크아웃은 지원하지 않음.

 

2. git switch의 도입 이유

git checkout은 다음과 같은 문제점이 있었습니다:

  1. 기능이 과도하게 많음:
    • 브랜치 변경, 생성, 특정 커밋 체크아웃, 파일 복구 등 너무 많은 역할을 수행.
    • 초보자에게 혼란을 주는 경우가 많음.
  2. 명령어 의도가 불명확:
    • 예: git checkout file.txt는 특정 파일 복구인지, 다른 브랜치의 파일 가져오긴지 명확하지 않을 수 있음.
  3. 직관적이지 않은 사용법:
    • 새로운 브랜치를 생성하고 이동하는 명령어가 복잡하게 느껴짐:
       
      git checkout -b new-branch

이를 개선하기 위해 git switch와 git restore 명령어가 추가되었습니다:

  • git switch: 브랜치 관련 작업 전용.
  • git restore: 파일 복구 및 특정 커밋 상태 복원 전용.

 

 

 

 

 

 

'Git' 카테고리의 다른 글

Git Flow 전략  (0) 2024.11.25
Git fetch와 pull의 차이  (0) 2024.11.25
Git 자주 쓰이는 명령어 정리  (0) 2024.11.25
Git을 현업에서 사용할 때 보통 어떤 식으로 이루어질까?  (0) 2024.11.25
Git workflow  (0) 2024.11.23