git switch checkout difference

agnusdei·2023년 7월 21일
0

git switchgit checkout은 Git에서 브랜치를 전환하거나 작업 트리(working tree)를 변경하는 데 사용되는 명령어입니다. 두 명령어의 주요 차이점은 사용 목적과 명령어에 사용되는 옵션들입니다.

git switch

Git 2.23 버전에서 도입된 git switch는 브랜치를 전환하거나 새로운 브랜치를 만들어 전환하는 것을 목적으로 합니다. 사용자가 해당 명령어만으로 원하는 기능을 이해하고 실행할 수 있도록 직관적인 명령어입니다.

주요 옵션:

  • -C <브랜치명>: 이미 존재하는 브랜치로 전환합니다.
  • -c <브랜치명>: 새로운 브랜치를 생성하고 전환합니다.
  • --detach: 브랜치를 따로 빼고 커밋되지 않은 변경 사항을 임시로 저장한 후, 주어진 커밋으로 전환합니다.
  • --discard-changes: 작업 트리에서 변경 사항을 버리고 주어진 브랜치로 전환합니다.

git checkout

git checkout은 브랜치 전환, 커밋 전환, 파일 복구 등의 여러 기능을 수행하는 복합 명령어입니다. 이 명령어는 Git에서 오래 전부터 사용되어 왔으며, 다양한 기능을 수행할 수 있습니다.

주요 옵션:

  • <브랜치명>: 지정한 브랜치로 전환합니다.
  • -b <브랜치명>: 새로운 브랜치를 생성하고 전환합니다.
  • --detach: 분리된 헤드 상태로 전환하며, 커밋되지 않은 변경 사항을 임시로 저장한 후, 주어진 커밋으로 전환합니다.
  • <커밋>: 지정한 커밋으로 작업 트리를 변경합니다.
  • <커밋> -- <파일>: 지정한 커밋 및 파일로 작업 트리의 상태를 변경합니다.
  • --ours/--theirs <파일>: 파일 병합 시 충돌 해결을 위해 우리의 변경 사항이나 상대방의 변경 사항을 선택합니다.

결론적으로, git switch는 브랜치를 전환하는 목적에 초점을 두어 직관적이고 사용하기 쉬운 명령어입니다. 반면, git checkout은 브랜치 전환 뿐 아니라 커밋 전환, 파일 복구 등의 여러 기능을 수행할 수 있는 복잡한 명령어입니다. 브랜치 전환만을 목적으로 한다면 git switch를 사용하는 것이 좋지만, 그 외 다양한 기능들이 필요하다면 git checkout을 사용해야 합니다.

0개의 댓글