Stack/Git

[Git 명령어] reset VS revert

annovation 2025. 1. 20. 08:50

커밋 해시값 확인하는 방법

(1) 터미널에 git log 입력

git log

 

(2) commit 다음에 나온 해시값 복사!


reset

  • 로컬에서 커밋을 되돌리고, 히스토리를 변경합니다.

사용법 

1. git reset --soft <commit> : 커밋만 되돌리고, 변경 사항은 스테이징 상태로 남깁니다.

git reset --soft HEAD~1  # 이전 커밋으로 되돌리되, 변경 사항은 스테이징 영역에 남깁니다.

 

2. git reset --mixed <commit> (기본값) : 커밋을 되돌리고, 변경 사항은 스테이징에서 제거하지만 작업 디렉토리에는 남깁니다.

git reset --mixed HEAD~1  # 이전 커밋으로 되돌리고, 변경 사항은 스테이징에서 제거됩니다.

 

3. git reset --hard <commit> : 커밋, 스테이징, 작업 디렉토리 모두 되돌립니다.

git reset --hard HEAD~1  # 이전 커밋으로 되돌리고, 모든 변경 사항을 삭제합니다.

revert

  • 로컬에서 새로운 커밋을 만들어서 되돌리며, 히스토리를 변경하지 않습니다.

사용법 

1. git revert <commit> : 특정 커밋을 되돌린 후, 새로운 커밋을 만듭니다.

git revert HEAD~1  # 이전 커밋을 되돌리고, 되돌린 내용을 반영한 새로운 커밋을 만듭니다.

reset VS revert

기능 git reset git revert
목적 로컬에서 커밋을 되돌려 히스토리를 수정함 기존 커밋을 되돌리되 새로운 커밋을 추가하여 수정
히스토리 수정 커밋 히스토리를 변경하며, 삭제 가능 커밋 히스토리를 변경하지 않고 새로운 커밋 추가
사용 환경 주로 로컬 작업에서 사용 팀 프로젝트 등, 공개된 히스토리에서 사용 가능
안전성 히스토리 변경으로 다른 사람과 충돌할 수 있음 히스토리를 깨지 않으므로 안전하게 사용 가능
영향 커밋을 삭제하거나 되돌리므로 이전 작업을 되돌릴 수 있음 되돌린 커밋을 반영한 새로운 커밋이 생성됨

 


출처

OpenAI ChatGPT (https://openai.com)

반응형

'Stack > Git' 카테고리의 다른 글

[Git] Commit Message  (0) 2025.01.25
[Git] Git workflow 브랜치 전략  (1) 2025.01.24
GitHub  (1) 2025.01.21
Let's Git it!  (0) 2025.01.19
[Git] 맥 GitHub Repository 연결하기 feat. InteliJ  (0) 2024.12.10