[Git] git swich vs git checkout

JangDol·2024년 11월 28일

두 명령어의 차이에 앞서 어디에 활용되는지 먼저 예시를 통해 확인해보자.

[git switch]

git switch main# main 브랜치로 전환
git switch -c new-branch# 새 브랜치를 생성하고 그곳으로 전환

[git checkout]

git checkout main# main 브랜치로 전환
git checkout -b new-branch# 새 브랜치를 생성후 전환
git checkout <해시코드># 특정 커밋으로 브랜치 HEAD를 이동
git checkout -- file.txt# 특정 파일을 마지막 커밋 상태로 복원

git switch와 git checkout은 Git에서 브랜치를 전환하는 명령어이다. 그런데 왜 같은 동작을 하는 두개의 명령어가 있을까?

그 이유는 git switch는 Git 2.23 버전에서 도입되면서 git checkout 명령어의 여러 기능을 목적이 분명하도록 분리시키기 위해서 추가되었다. 두 명령어의 분리를 통해 사용 목적과 범위를 명확하게 하고 있다.

[git switch]

특징 : 명확한 기능

  • git switch는 오직 브랜치 전환에만 사용된다.이를 통해 명령어의 기능을 명확하게 해 더욱 간결하고 직관적으로 브랜치를 전환할 수 있게 해준다. 그로므로 git switch는 브랜치 전환 기능만 사용되어 명령어 사용이 더 단순하고 명확하다.

[git checkout]

특징 : 범용적인 기능

  • git checkout은 브랜치 전환, 이전 커밋 불러오기, 파일의 체크아웃 등 다양한 기능이 사용된다.
  • checkout 명령어로 여러 기능을 수행할 수 있으므로, 명령어의 목적이 명확하지 않고 사용자에게 혼란을 줄 수 있다.

정리

  • git switch는 git chechout의 여러 기능중에 브랜치 전환 기능만을 구현한 명령어로 목적을 명확히하기 위해 만들어졌다.
profile
개발 기록소

0개의 댓글