내 잡다한 노트
Git switch와 checkout의 차이 본문
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은 다음과 같은 문제점이 있었습니다:
- 기능이 과도하게 많음:
- 브랜치 변경, 생성, 특정 커밋 체크아웃, 파일 복구 등 너무 많은 역할을 수행.
- 초보자에게 혼란을 주는 경우가 많음.
- 명령어 의도가 불명확:
- 예: git checkout file.txt는 특정 파일 복구인지, 다른 브랜치의 파일 가져오긴지 명확하지 않을 수 있음.
- 직관적이지 않은 사용법:
- 새로운 브랜치를 생성하고 이동하는 명령어가 복잡하게 느껴짐:
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 |