본문 바로가기
Program Development Tips/Git

[Git] Reset과 Git Checkout: 차이점과 사용법 총정리

by Maccrey Coding 2024. 8. 27.
반응형

 

Git을 사용하다 보면 git reset과 git checkout 명령어를 자주 마주치게 됩니다.

두 명령어 모두 Git에서 중요한 역할을 하지만, 그 목적과 사용법은 다릅니다.

오늘은 이 두 명령어의 차이점과 사용법을 쉽게 설명해드리겠습니다.

1. Git Reset: 브랜치가 가리키는 커밋 변경하기

git reset 명령어는 현재 브랜치가 가리키는 커밋을 변경하는 데 사용됩니다.

예를 들어, 특정 커밋으로 되돌아가고 싶다면 git reset을 사용하면 됩니다.

git reset [커밋 ID]

만약 "네번째 커밋"에서 "세번째 커밋"으로 변경하고 싶다면 다음과 같이 명령을 하면 됩니다.

git reset 세번째 커밋

위 명령어를 실행하면 현재 브랜치가 지정한 커밋 ID로 이동하게 됩니다. 즉, 브랜치의 끝이 변경된 커밋을 가리키게 되는 것이죠.

2. Git Checkout: HEAD의 위치 변경하기

git checkout은 두 가지 주요 기능이 있습니다.

 

첫 번째는 브랜치를 변경하는 것입니다.

예를 들어, 다른 브랜치로 이동하고 싶다면 아래와 같이 git checkout을 사용합니다.

git checkout [브랜치 이름]

이 명령어를 실행하면 HEAD가 해당 브랜치를 가리키게 되며, 워킹 디렉토리도 그에 맞게 변경됩니다.

"master" 브랜치에서 "premium"브랜치로 변경하고 싶다면 다음과 같이 명령을 하면 됩니다.

git checkout premium

 

 

두 번째 기능은 특정 커밋으로 이동하여 HEAD를 그 커밋을 직접 가리키도록 만드는 것입니다. 이를 통해 Detached HEAD 상태를 만들 수 있습니다.

git checkout [커밋 ID]

이 명령어를 실행하면 HEAD가 해당 커밋을 직접 가리키게 되며, 브랜치에서 분리된 상태(Detached HEAD)가 됩니다.

 

"master" 브랜치에서 9033커밋(세번째 커밋)로 변경하고 싶다면 다음과 같이 명령을 하면 됩니다.

git checkout 9033

3. Detached HEAD란?

Detached HEAD 상태는 브랜치를 가리키지 않고 특정 커밋을 직접 가리키는 상태를 의미합니다. 이 상태는 주로 과거의 특정 커밋에서 새로운 브랜치를 만들고 싶을 때 유용합니다.

git branch [새로운 브랜치 이름]

위 명령어를 실행하면, 현재 HEAD가 가리키는 커밋을 시작점으로 새로운 브랜치가 생성됩니다.

그러면 HEAD가 가르치고 있는 9033커밋(세번째 커멧)에서 "premium"브랜치를 새로 생성하도록 다음과 같이 명령을 하면 됩니다.

git branch premium

 

  1. 지금 premium이라는 브랜치가 새로 생성되었고
  2. premium 브랜치는 HEAD 가리키던 커밋을 똑같이 가리키게 됩니다.

4. Git Reset vs Git Checkout: 차이점 정리

Git ResetGit Checkout

브랜치가 가리키는 커밋을 변경 HEAD가 가리키는 위치 변경
브랜치를 통한 간접적인 커밋 이동 브랜치 또는 커밋을 직접 가리킴 (Detached HEAD 가능)

 

이제 git reset과 git checkout의 차이점을 명확히 이해하셨을 겁니다.

다음에는 이 명령어들을 활용해 브랜치와 커밋을 더욱 효과적으로 관리해보세요!

 

공감과 댓글은 저에게 큰 힘이 됩니다.

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

반응형