너 아직도 그 명령어 쓰니?🤷
맨날 VSCode UI를 이용해 Git을 사용하다가 오랜만에 CLI를 사용할 일이 있었는데요,,
명령어가 가물가물해서 git --help
를 입력했더니 이게 웬걸 😱
git checkout
이 안 보이는 것 아니겠습니까??
궁금해서 찾아봤습니다.
git checkout
명령어는 브랜치 전환, 커밋 간 이동, 파일 복원 등 다양한 기능을 담당하고 있었습니다. 하지만 Git 2.23 버전 이후로, 더욱 직관적이고 안전한 방식으로 코드를 관리할 수 있도록 git switch
와 git 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