개발 도구와 개발 환경/버전 관리 시스템

[Git] 너 아직도 그 명령어 쓰니? (feat. git checkout, git switch)

이현성? 2023. 8. 2. 00:33

너 아직도 그 명령어 쓰니?🤷

맨날 VSCode UI를 이용해 Git을 사용하다가 오랜만에 CLI를 사용할 일이 있었는데요,,

명령어가 가물가물해서 git --help를 입력했더니 이게 웬걸 😱

git checkout이 안 보이는 것 아니겠습니까??

궁금해서 찾아봤습니다.

git checkout 명령어는 브랜치 전환, 커밋 간 이동, 파일 복원 등 다양한 기능을 담당하고 있었습니다. 하지만 Git 2.23 버전 이후로, 더욱 직관적이고 안전한 방식으로 코드를 관리할 수 있도록 git switchgit restore로 분리되었다고 합니다. 🛠️

git switch

git switch는 브랜치 간 이동을 위해 사용됩니다. 이전 git checkout에서 브랜치 전환 기능만 분리한 명령어라고 보면 됩니다.

# 브랜치 이동
$ git checkout <branch>
$ git switch <branch>

# 새로운 브랜치를 만들면서 브랜치 이동
$ git checkout -b <new_branch>
$ git switch -c <new_branch>

git restore

git checkout에서는 복원 작업을 수행하기 위해 다소 번거로운 방법을 사용해야 했습니다. 하지만 git restore는 간단하고 직관적으로 사용할 수 있습니다.

 

만약 아무런 옵션을 입력하지 않거나 --worktree 옵션을 입력한다면 working copy가 복원되고 --staged 옵션을 입력한다면 index가 복원됩니다.


게다가 --source옵션을 통해 복원 내용의 출처를 명확히 표시할 수 있습니다.

만약 --source옵션을 입력하지 않는다면 복원 내용은 staging area에 있는 내용이 됩니다.

결론

제발 개발자라면 git checkout대신 git switch 씁시다. 🙏

농담이고요, git checkout도 계속 사용 가능하기 때문에 이미 만들어서 잘 쓰고 있는 script 같은 곳에서는 신경 쓰지 않으셔도 될 것 같습니다.

 

 

새 버전에 맞게 git checkout 대신 switch/restore 사용하기 :: Outsider's Dev Story

Git에 어느 정도 익숙하기에 새로운 기능이 나와도 일일이 테스트해보거나 자세히 확인해 보지 않았다. 얼마 전에 [Git 2.23](https://github.blog/2019-08-16-highlights-from-git-2-23/)에서 `checkout`을 대신...

blog.outsider.ne.kr

 

 

Highlights from Git 2.23

Take a look at some of the new features in the latest Git release.

github.blog