안녕하세요 BTC-1tier팀의 One입니다
오늘은 Git의 Switch와 restore 명령어에 대해서 알아보겠습니다.
여러분은 Git의 Checkout 명령어를 아시나요?
아마 Git을 자주 사용하시는 분이면 굉장히 익숙한 명령어일텐데요
문제는 이 Checkout이라는 하나의 명령어가 가진 기능이 너무 많습니다.
checkout은 branch 생성 및 전환할 수 있는 기능과,
커밋 이후로 파일이 변경되었을 시, 최근 커밋 기준으로 파일을 되돌리는 기능을 가지고있는데요
이 명령어를 대체하기 위해 Git 2.23부터 switch와 restore가 도입되었다고 합니다.
세가지 명령어의 기능을 간단히 정리하면 다음과 같습니다.
명령어 | 실행 |
checkout | Switch branches or restore working tree files |
switch | Switch branches |
restore | Restore working tree file |
switch와 restore 명령어에 대해 조금 더 자세히 알아보도록 할까요?
Switch
switch는 checkout에서 브랜치를 변경하는 부분만 담당합니다.
git switch master
checkout의 -b 옵션처럼 -c 옵션으로 브랜치 생성 후 바로 전환이 가능합니다.
git switch -c new-branch
특정 브랜치나 커밋에서 새로운 브랜치를 만들고 싶으면, 브랜치 이름 뒤에 커밋을 지정해주면 됩니다.
git switch -c new-branch [commit-hash]
Restore
restore는 워킹 트리의 파일을 복원해주는 역할을 합니다.
파일의 수정 내용을 복원하기 위해 git checkout [파일명]을 사용했습니다.
위 명령어보다 더 명확한 restore 명령어를 사용할 수 있습니다.
git restore README.md
git add를 통해서 수정 내용을 이미 stage에 넣은 경우, 다시 빼려면 git reset HEAD [파일명]을 사용했어야 했지만,
이 과정도 restore 명령어를 통해 해결이 가능합니다.
git restore --staged README.md
최근에 git checkout 명령어를 사용하면서, 파일을 원상복구 하는 과정에서
파일명과 동일한 branch로 전환되어 곤란한 경우가 있었는데요
이러한 상황을 방지하기위해 switch와 restore를 사용하면 좋겠죠??
다음 포스팅에서 만나요~
베바👋
'INFRA > DevOps' 카테고리의 다른 글
Teams Workflow 생성하기 (0) | 2024.08.20 |
---|---|
Deployments 와 StatefulSets (0) | 2024.04.17 |
[K8S] Rollout (0) | 2024.01.08 |
[DevOps] Log4j 보안취약점 및 해결 방법 (0) | 2023.12.29 |
[DevOps] Log4j 란? (1) | 2023.12.29 |
댓글