Git 여러 커밋 되돌리기

Azhar Bashir Khan 2023년1월30일
  1. git revert를 사용하여 Git에서 여러 커밋 되돌리기
  2. git reset을 사용하여 Git에서 여러 커밋 되돌리기
Git 여러 커밋 되돌리기

이 튜토리얼에서는 Git에서 여러 커밋을 되돌리는 방법에 대해 알아봅니다.

Git에서 우리는 일부 기능 개발을 위해 많은 커밋을 수행했거나 몇 가지 버그 수정을 커밋했을 수 있습니다.

우리는 이제 이 작업을 중단하기로 결정할 수 있습니다. 따라서 이러한 변경이 완료되기 전의 상태로 저장소를 되돌리려면 완료된 여러 커밋을 되돌려야 합니다.

Git에서 여러 커밋을 되돌리기 위해 git revert 명령을 사용할 수 있습니다.

여러 커밋을 되돌리는 또 다른 방법은 git reset 명령을 사용하는 것입니다.

이제 예를 들어 두 가지를 모두 설명하겠습니다.

git revert를 사용하여 Git에서 여러 커밋 되돌리기

몇 가지 버그 수정을 위해 여러 커밋을 수행했다고 가정합니다.

다음과 같이 Git 로그에서 이러한 커밋을 볼 수 있습니다.

$ git log --oneline
17b787d bug3 fixed
1fefb57 bug2 fixed
8b3560b bug1 fixed
784065c feature1 developed
...

이제 우리는 이러한 버그 수정을 없애고 저장소를 bug1 fixed 상태 이전의 상태로 되돌리기로 결정했습니다.

따라서 --no-commit 옵션과 함께 git revert 명령을 사용할 수 있습니다. 명령 구문은 git revert --no-commit <commit>입니다.

따라서 완료된 버그 수정의 세 커밋을 되돌리려면 다음과 같이 해야 합니다.

$ git revert --no-commit 17b787d784065c
$ git revert --no-commit 1fefb57
$ git revert --no-commit 8b3560b

따라서 Git의 저장소는 이제 bug1 fixed를 커밋하기 전의 상태입니다.

각 커밋을 되돌리기 위해 커밋의 sha1 이름을 사용했습니다.

다음과 같이 Git 리포지토리에 작업 트리의 이 상태를 커밋해야 합니다.

$ git commit -m "the fixes for bugs 1 2 3 reverted"

git reset을 사용하여 Git에서 여러 커밋 되돌리기

저장소에 병합 커밋이 있다고 가정합니다. 그러면 git revert를 사용하는 위의 솔루션이 작동하지 않습니다.

이러한 경우 git reset 명령을 사용해야 합니다.

따라서 Git에서 git reset을 사용하여 여러 커밋을 되돌리려면 다음과 같이 해야 합니다.

$ git reset --hard 784065c
$ git reset --soft ORIG_HEAD
$ git commit

따라서 git reset 명령을 사용하여 저장소를 커밋 기록의 첫 번째 버그 수정 직전인 784065c feature1 개발됨 커밋으로 되돌렸습니다.

따라서 이것은 병합 커밋이 있는 경우에도 작동합니다.

관련 문장 - Git Commit

관련 문장 - Git Reset