본문 바로가기
Program Development Tips/Git

[Git] reset 커맨드: 상대적인 커밋 참조 활용하기

by Maccrey Coding 2024. 8. 23.
728x90
반응형

 

Git에서 reset 커맨드를 사용할 때 커밋 아이디 대신 상대적인 커밋 참조를 활용하는 방법에 대해 알아보겠습니다.

git reset 명령어는 특정 커밋으로 HEAD를 이동시킬 때 유용하게 사용됩니다.

하지만 매번 커밋 아이디를 입력하는 것은 불편할 수 있습니다.

그래서 상대적인 커밋 참조를 사용하는 방법을 소개하겠습니다.

1. Git reset 기본 사용법 복습

먼저, git reset 명령어의 기본 구조를 복습해보겠습니다.

bash
코드 복사
git reset [옵션] [커밋 아이디]
git reset [옵션] [커밋 아이디]​
  • 옵션: --soft, --mixed, --hard 등
  • 커밋 아이디: 되돌리려는 특정 커밋의 해시값

2. 상대적인 커밋 참조란?

상대적인 커밋 참조는 현재 HEAD가 가리키고 있는 커밋을 기준으로 상대적으로 다른 커밋을 참조할 수 있는 방법입니다. 이 방법을 사용하면 매번 커밋 아이디를 입력하지 않고도 이전 커밋으로 쉽게 이동할 수 있습니다.

HEAD^

  • 기능: 현재 HEAD가 가리키고 있는 커밋의 바로 이전 커밋을 나타냅니다.
  • 용도: 최근 커밋에서 하나 이전의 커밋으로 이동할 때 사용합니다.
bash
코드 복사
git reset --hard HEAD^
git reset --hard HEAD^​

HEAD~n

  • 기능: 현재 HEAD가 가리키고 있는 커밋보다 n단계 이전에 있는 커밋을 나타냅니다. n은 숫자로, 몇 단계 이전인지에 따라 다릅니다.
  • 용도: 최근 커밋에서 여러 단계 이전의 커밋으로 이동할 때 사용합니다.
bash
코드 복사
git reset --hard HEAD~2
git reset --hard HEAD~2​

3. 상대적인 참조 사용 예제

예제 1: HEAD^ 사용하기

가장 최신 커밋에서 하나 이전 커밋으로 돌아가고 싶다면, 다음과 같이 사용합니다.

# HEAD가 현재 최신 커밋(6번 커밋)을 가리키고 있다고 가정
# HEAD^는 5번 커밋을 가리킴
git reset --hard HEAD^

이 명령어를 실행하면, HEAD는 5번 커밋을 가리키게 됩니다. 작업 디렉토리와 스테이징 영역도 5번 커밋 상태로 되돌아갑니다.

예제 2: HEAD~2 사용하기

HEAD에서 두 단계 이전 커밋으로 돌아가고 싶다면, 다음과 같이 사용합니다.

# HEAD가 현재 최신 커밋(6번 커밋)을 가리키고 있다고 가정
# HEAD~2는 4번 커밋을 가리킴
git reset --hard HEAD~2

이 명령어를 실행하면, HEAD는 4번 커밋을 가리키게 됩니다. 작업 디렉토리와 스테이징 영역도 4번 커밋 상태로 되돌아갑니다.

4. 왜 상대적인 참조를 사용하는 게 좋은가요?

상대적인 참조를 사용하면 커밋 아이디를 직접 입력하는 번거로움을 덜 수 있습니다.

커밋 아이디는 매번 복사해서 붙여넣어야 하는데, 상대적인 참조는 현재 상태를 기준으로 커밋을 지정할 수 있어 빠르고 효율적입니다.

  • 편리함: 커밋 아이디를 기억하거나 찾는 번거로움 없이 쉽게 커밋을 참조할 수 있습니다.
  • 효율성: 여러 단계 이전 커밋으로 빠르게 이동할 수 있습니다.

5. 결론

Git의 reset 커맨드에서 상대적인 커밋 참조를 활용하면 작업이 훨씬 수월해집니다.

HEAD^와 HEAD~n을 잘 활용하면, 매번 커밋 아이디를 찾아 입력하는 대신, 현재 HEAD를 기준으로 필요한 커밋으로 간편하게 이동할 수 있습니다.

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

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

 

728x90
반응형