본문 바로가기

기타/01.Git(GitLab)

[Git] git 커밋 한거 롤백 하는 방법

배경 : 내가 특정 A 브랜치에서 중간이상 규모급 수정을 한참 하고 있는데, 운영건 급하다고 뭐 바꿔달라고 요청이 왔음.. 그건 반영하면 안되는 소스다보니.. 특정 소스만 반영해서 빌드해야하는 상황. 

근데 지금 내가 운영하는 프로젝트는 WAR 파일을 내 IDE에서 직접 빌드해서 서버로 직접 업로드 하다보니,, 개발중인 소스는 무조건 1번은 commit은 해야하는 상황임

git commit 한거를 바로 롤백하는 방법은?

 

내용

==> 나는 이중 2번째인 2번으로 아주 깔끔하게 잘 되었따.. 

git reset   ... soft 로..

 

(아래내용 : chatGPT 가 만들어줌)

 

Git에서 커밋을 롤백하는 방법은 상황에 따라 여러 가지가 있습니다. 아래는 각각의 경우에 맞는 방법을 설명합니다.

1. 마지막 커밋을 취소하고 수정 없이 되돌리기

  • 커밋한 내용을 완전히 취소하고 작업 트리에 다시 반영하지 않으려면 다음 명령을 사용하세요:이 명령은 마지막 커밋을 삭제하고, 그에 대한 변경 사항도 모두 되돌립니다. 되돌린 후에는 해당 커밋과 그 변경사항이 사라지므로 주의해야 합니다.
  • bash
    코드 복사
    git reset --hard HEAD^

2. 마지막 커밋을 수정 없이 취소하고 변경 사항을 유지하기

  • 커밋을 취소하지만 변경 사항을 작업 트리에 남겨두려면 다음 명령을 사용하세요:이 명령은 마지막 커밋만 삭제하고, 그 변경 사항을 스테이징(인덱스) 상태로 둡니다. 커밋은 사라지지만 파일은 변경된 상태로 남아 있어 다시 커밋할 수 있습니다.
  • bash
    코드 복사
    git reset --soft HEAD^

3. 원격 저장소에 푸시한 커밋을 되돌리기

  • 이미 원격 저장소에 푸시한 커밋을 되돌려야 한다면, 먼저 로컬에서 커밋을 취소하고, 그 후에 강제로 푸시해야 합니다:이 명령은 강제로 푸시하는 것이므로 주의해야 합니다. 다른 사용자가 해당 커밋을 가져갔다면 문제가 발생할 수 있습니다.
  • bash
    코드 복사
    git reset --hard HEAD^ git push origin +브랜치명

4. 특정 커밋을 롤백하기 (중간 커밋 롤백)

  • 중간에 있는 특정 커밋만 롤백하고 싶다면 revert 명령을 사용할 수 있습니다:이 명령은 해당 커밋의 변경사항을 무효화하는 새로운 커밋을 생성합니다. 기존의 기록은 남기고 롤백하는 방법입니다.
  • bash
    코드 복사
    git revert <커밋 해시>

5. 여러 커밋 롤백하기

  • 여러 커밋을 롤백하려면 범위를 지정하여 리셋할 수 있습니다:이 명령은 지정한 커밋부터 그 이후의 커밋들을 모두 삭제하고, 해당 시점으로 돌아갑니다.
  • bash
    코드 복사
    git reset --hard <커밋 해시>

중요한 점

  • git reset --hard 명령은 되돌리면 변경 사항이 영구히 삭제되므로 주의해서 사용해야 합니다.
  • 되돌리기 전에 중요한 변경 사항은 백업하거나 복사해 두는 것이 좋습니다.

원하는 롤백 방식이 무엇인지에 따라 위 방법 중 하나를 사용하시면 됩니다.

728x90