commit 시점을 이용해서
다시 파일을 돌릴 수 있는 대표적 기능이다.
'얄팍한 코딩사전'이 많이 도움이 되었다.
1. revert
실수 등으로 인해 최근 commit 을 취소하고 싶을 때 이용할 수 있다.
$git revert <취소할 log ID> 로 사용한다.
먼저
$git log --oneline 등의 log 조회 명령어로(2번에 다른 것도 설명함)
commit log 를 확인한다.
* One class 를 추가하면서
"one"이라는 commit 을 작성했다.
그런데, 만약 One class 가 잘못되었다면?
지금 commit 을 취소하고 싶을 것이다.
이 때 취소할 log ID와 같이 revert해준다.
$git revert <ID>
$git revert <id>..<id>
*위 처럼 지정하면 해당 범위 모두 취소
진행하고 commit 하고 나면
revert 정보가 따로 생성이 됩니다.
이게 가장 큰 특징이라고 합니다.
이후 상태확인 후 작업을 이어나가면 된다.
**아래는 revert 시 발생됐던 오류. 추후 해결 예정.
progress 실행 중 탈출법을 모르겠다....
2. reset
*
--hard : 복구 된 이력 이후 내용 모두 삭제 및 초기화
--soft : 복구된 이력 이후 내용을 모두 유지
--mixed : 복구이력 내용유지, 인덱스초기화, 변경내용 추가가능(add)
git reset 기능은 지정한 commit 시점 이후의 log 를 모두 삭제하는 기능이다.
복구할 수 없기 때문에 매우 조심히 사용해야 한다.
2-1. 먼저 log 를 조회해본다.
$git log --oneline
혹은
$git log --oneline --graph
$git log --oneline --graph --decorate --all
등으로 확인 가능하다.
commit 메시지를 통해 어떤 시점 이후의 기록을 삭제할지 정한 후
보존하고 싶은 마지막 commit 로그를 복사한다. (7개 문자열)
$git reset <보존하고 싶은 범위까지의 ID>
아래처럼 명령해주면 바로 반영된다.
다시 한 번 log 를 조회해보면
명령한 ID 이후의 log는 모두 없어져있다.
이후 $git status 로 상태를 조회하여 다시 작업을 해준다.
'Tools' 카테고리의 다른 글
[Git, Android] Main 브랜치로 시작하기(리젝 방지) (0) | 2022.04.03 |
---|---|
[Firebase] Firestore(NoSQL) 설계 (0) | 2021.08.22 |
[Git] 초기설정 모두 완료 후 워크플로우(ebook 복습) (0) | 2021.01.11 |
[Git] 초기설정 후 github 연동 및 branch 세팅(Android) (0) | 2021.01.09 |
[Git] git 설치 및 설치 직후 환경 설정(windows/Android) (0) | 2021.01.09 |