본문 바로가기
ETC/GitHub

[ GitHub ][ Git ] 이전 commit 되돌리기, 취소 하는 방법

by 알기 쉬운 코딩 사전 2024. 7. 10.
반응형

git reset을 사용한 commit 되돌리기 방법으로, 팀 프로젝트 진행 시에는 사용을 지양해 주시길 바랍니다.

개인 프로젝트나 개인 공부를 할 때 사용하기에 적합한 방법입니다.

시간이 없으신 분들은 여기를 클릭해 주세요. 바로 정리 부분으로 이동합니다. :)

상황 구현

기존은 올바른 코드를 작성 한 후의 hello.md 파일입니다. 일반적인 방법으로 git commit과 push를 합니다.

 

hello.md

1. 첫 번째 커밋 올바른 코드...

 

git commit

$ git add .
$ git commit -m "첫 번째 commit: 올바른 코드"
$ git push origin main

 

1번째 커밋은 정상적으로 완료된 상태입니다. 이 상태에서 잘못 작성한 코드를 작성하고 git commit과 push를 합니다.

 

hello.md

1. 첫 번째 커밋 올바른 코드...

2. 두 번째 커밋 잘못 작성한 코드...

 

git commit

$ git add .
$ git commit -m "두 번째 commit: 잘못 작성한 코드"
$ git push origin main

 

git local과 remote에서는 2번째 commit이 완료된 상태인 걸 확인할 수 있습니다.

 

현재 상태

local -> 잘못 작성한 코드 반영 상태
github(remote) -> 잘못 작성한 코드 반영 상태

 

local
github

 

해결 방법

1. local에서 이전 commit으로 되돌리는 명령어입니다.

git reset --hard HEAD~1

 

git reset 명령어로 인하여 local의 파일이 변경된 상태임을 확인할 수 있습니다. 

 

현재 상태

하지만 github에는 반영이 되지 않은 상태입니다. 이전 commit 내용으로 변경된 파일을 github에 반영해 주기 위해서는 git push가 아닌 git push -f (force) 명령어를 통해서 강제 push 해주어야 합니다.

local -> 올바른 코드 반영 상태 ( 첫번째 commit 상태 )
github(remote) -> 잘못 작성한 코드 반영 상태

local
github

2. github에 강제로 push하는 명령어입니다.

git push -f origin main

현재 상태

local -> 올바른 코드 반영 상태 ( 첫번째 commit 상태 )
github(remote) -> 올바른 코드 반영 상태 ( 첫번째 commit 상태 )

git push -f 명령어로 인하여 github에도 이전 commit으로 반영이 된 걸 확인할 수 있습니다.

 

 

정리

$ git reset --hard HEAD~1
$ git push -f origin main
반응형

'ETC > GitHub' 카테고리의 다른 글

[Git] 프로젝트 이름, 설명 변경 하는 방법(+사진)  (1) 2024.10.31

댓글