본문 바로가기
Git

[git] reset으로 커밋 되돌기

by jucheol 2024. 1. 26.

문제 상황

git rebase를 이용하여 develop 브랜치의 정보를 받아오려고 했는데 문제가 발생해서 다른 사람의 커밋까지 복사해서 가져오게 되었다.

해결방법

1. git reflog

git reflog

위 명령어를 사용하여 커밋 기록을 확인

기록 확인을 마치면 q를 입력하여 뒤로 나간다

2. git reset

git reset <commit id>

git reflog로 확인한 커밋 기록에서 이동하고 싶은 커밋 아이디를 사용한다

즉 git reflog 결과에서 "refactor: ToDoService 리팩토링" 커밋으로 이동하고 싶은 경우 7f80143을 이용한다.

=> git reset 7f80143

3.1 깃허브에 올리기(문제가 있는 브렌치에 다시 올리는 경우)

git add .
git commit -m "메시지"
git push -f origin <브랜치 이름>

1.  git add . 를 이용해 모든 파일을 선택한다.

2.  git commit 으로 어떤 작업인지 설명한다.

3.  git push -f origin <브렌치 이름>으로 강제로 깃허브에 기존에 있는 내용을 무시하고 로컬에 있던 커밋 내용을 올린다

-f는 force라는 의미로 이 옵션을 사용하면 로컬과 깃허브의 커밋 정보가 다른 상황에서 오류가 발생하지 않고 강제로 push하기 때문에 조심해서 사용해야 한다.

3.2 깃허브에 올리기(새로운 브랜치에 올리는 경우)

git checkout -b <새 브랜치 이름>
git add .
git commit -m "메시지"
git push origin <새 브랜치 이름>

1. git checkout -b <새 브랜치 이름> 

git chechout <브랜치 이름>은 다른 브랜치로 이동할 수 있는 명령어 이고, 여기에 -b 옵션을 사용하면 새로운 브랜치를 생성하고 새 브랜치로 이동하게 해준다

2. add -> commit -> push 순으로 진행하며 reset한 커밋을 새로운 브랜치에 push 한다

'Git' 카테고리의 다른 글

git-secret 사용하기  (0) 2024.12.01
[git] 기본적인 git 사용  (0) 2024.01.26