힘내 방법 : 롤백 커밋

Git 리포지토리를 변경하고 실수를 한 경우 커밋을 롤백하여 워크 플로를 다시 되돌릴 수있는 방법이 있다는 것을 알고 있으면 좋습니다. 이 가이드에서는 리포지토리에 대한 로컬 및 원격 커밋에 대한 git revert 명령을 살펴 보겠습니다..


다이빙하기 전에 git reset과 git revert의 차이점을 이해하는 것이 중요합니다..

git revert over git reset의 장점

되돌리기는 재설정에 비해 두 가지 중요한 장점이 있습니다.

  • 되돌리기는 프로젝트 히스토리를 변경하지 않으므로 이미 공유 리포지토리로 푸시 된 커밋에 대한 안전한 작업입니다..
  • 되돌리기는 히스토리의 임의의 지점에서 개별 커밋을 대상으로 할 수 있지만 git reset을 사용하는 경우, 현재 커밋에서 뒤로 만 작동 할 수 있습니다.

커밋을 롤백하기 위해 git revert 명령 사용

git revert의 명령 구문은 다음과 같습니다.

1 자식 되돌리기

Git이 이해하는 지원되는 커밋 ID 양식에 설명되어있는 곳.

git reflog를 사용하여 단축 커밋 ID가있는 로컬 Git 히스토리를 보거나 git log를 사용하여 커밋 된 전체 Git 히스토리에 대한 더 긴 형식의 SHA-1 커밋 ID를 찾을 수 있습니다.

1
2

4
5
6
7
8
9
10
11
12
13
14
15
16
17

git reflog

bc32b0d HEAD @ {0} : 커밋 : contact-us.htm 추가

ead83d9 HEAD @ {1} : 커밋 : blog.htm 추가

 
 

$ 자식 로그

커밋 bc32b0d8a583ccc3b0bcc9fbdfe3c7bbd1b4f0d1

저자 : 사용자 < [email protected]>

날짜 : 화 2 월 10 일 12:38:32 2015-0500

 

    contact-us.htm 추가

 

커밋 ead83d9f1d800de241580070d22a17f769ea7866

저자 : 사용자 < [email protected]>

날짜 : 화 2 월 10 일 12:38:00 2015-0500

 

    blog.htm 추가

git reflog 명령은 로컬 리포지토리에서 수행 한 모든 작업의 ​​시간 기록을 기록합니다. 전체 출력은 다음과 같습니다.

1
2

4
5

bc32b0d HEAD @ {1} : 커밋 : contact-us.htm 추가

ead83d9 HEAD @ {2} : 커밋 : blog.htm 추가

1a890e7 HEAD @ {3} : 커밋 : about-us.htm 추가

bf58ea1 HEAD @ {4} : 커밋 : index.htm 추가

5c66257 HEAD @ {5} : 커밋 (초기) : README.md 추가

사례 1 : 단일 로컬 Git 커밋 되돌리기

이제 contact-us.htm 파일을 프로젝트에 추가 했으므로 about-us.htm 파일이 더 이상 필요하지 않다는 것을 알게되었습니다..

다음을 수행하여 커밋 한 시간으로 되돌리고 그 이후의 모든 변경 사항을 유지할 수 있습니다.

1 git revert 1a890e7

Git은이 되돌리기 커밋에 대한 새로운 메모를하라는 메시지를 표시하며 기본값은 다음과 같습니다.

1
2

돌아가다 "about-us.htm 추가"

 

커밋 1a890e7980283e348cde0444cabe709f6342a851을 되돌립니다..

계속해서 해당 메모를 저장하거나 자신 만의 메모를 만들어 되돌리기를 완료하십시오.

1
2

[마스터 2bbaed3] 되돌리기 "about-us.htm 추가"

파일 1 개 변경, 삭제 1 개 (-)

삭제 모드 100644 about-us.htm

특정 로컬 커밋을 되돌립니다. 최신 커밋과 Git 히스토리가 보존됩니다.

1
2

4
5
6
7
8
9
10

git reflog

2bbaed3 HEAD @ {0} : 되돌리기 : 되돌리기 "about-us.htm 추가"

bc32b0d HEAD @ {1} : 커밋 : contact-us.htm 추가

ead83d9 HEAD @ {2} : 커밋 : blog.htm 추가

1a890e7 HEAD @ {3} : 커밋 : about-us.htm 추가

bf58ea1 HEAD @ {4} : 커밋 : index.htm 추가

5c66257 HEAD @ {5} : 커밋 (초기) : README.md 추가

 

$ ls

blog.htm contact-us.htm index.htm README.md

사례 2 : 로컬 Git 커밋 범위 되돌리기

모든 로컬 작업을 “1a890e7″에서 “HEAD”로 되돌리려면 다음을 사용하십시오.

1 git revert 1a890e7 .. 헤드

사례 3 : 푸시 된 Git 커밋 되돌리기

원격 저장소를 체크 아웃 한 후에는 먼저 git revert를 사용한 다음 평소대로 푸시 할 수 있습니다.

1
2

git revert 1a890e7980283e348cde0444cabe709f6342a851

자식 푸시 원점

사례 4 : 푸시 된 범위의 커밋 커밋 되돌리기

또한 푸시 된 커밋 세트를 취소 할 수도 있습니다.

1
2

git revert 1a890e7980283e348cde0444cabe709f6342a851..ead83d9f1d800de241580070d22a17f769ea7866

자식 푸시 원점

빠른 로컬 커밋을 취소해야합니까? git reset 사용

때로는 로컬 실수를 빨리하면 git revert를 사용하지 않고 대신 git reset을 사용하려고 할 수 있습니다.

어느 쪽이든, Git으로 실수로 저지른 커밋을 수정하는 방법을 이해해야합니다. 처음에는 프로세스가 복잡하고 무서워 보일 수 있지만 실제로 몇 번 프로세스를 수행 한 후에는 이해하기가 매우 간단합니다..

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map