먼저 commit 을 되돌리는 게 아니라 단지 옛날 버전의 파일을 가져다 쓰고 싶다면 더 편한 방법이 있다.
오른쪽 클릭 - TortoiseGit - Show log 클릭
원하는 버전 선택해 오른쪽 클릭 후 Export this version 클릭
그럼 압축파일로 내보내기 할 수 있다.
옛날버전의 프로젝트 파일을 가져다 쓰고 싶은 경우 이렇게 하면 된다.
그 다음에 commit 버전 되돌리는 방법은 Reset 과 Revert 두 가지가 있는데 둘이 헷갈리니까 주의가 필요하다.
1. Reset : 해당 버전으로 되돌리고 그 이후의 커밋 내역은 삭제됨
아래와 같이 4번 커밋까지 한 상황에서 2번 커밋 상태로 되돌아가고 싶다면 위해 2번을 오른쪽 클릭하고 Reset을 누른다.
이 때 Reset Type을 Hard 로 선택하면 작업하던 Working tree changes 까지 없애고 완벽히 예전 커밋의 상태로 되돌릴 수 있다.
그리고 창을 나갔다가 다시 Show log로 들어와보면 현재 2번 커밋 상태이고 2번 커밋 이후의 기록은 아예 사라진 것을 볼 수 있다.
형상관리라는 목적에 알맞지 않은 방법이지만 간단하다. 커밋 이후에 뭔가 수정하다가 이상해져 버려서 아예 아무 기록도 남기지 않고 이전 커밋상태로 돌아가고 싶을 땐 Reset Type Hard를 선택해서 Reset 하는 것도 괜찮은 방법같다.
2. Revert : 해당 커밋으로 생긴 변경사항을 되돌린다. 되돌린 기록이 로그에 남게된다.
실행취소인 Ctrl+Z와 비슷한 개념으로 생각하면 된다.
아래 상황에서 내가 2번 커밋 상태로 되돌아가고 싶다면 4번을 오른쪽 클릭하고 Revert를 누른다.
다시 3번을 오른쪽 클릭하고 Revert를 누른다.
그리고 창을 나가보면 현재 test.txt 파일은 2번 커밋과 동일한 상태로 변경되었다.
이 때 다시 커밋을 하는데 Revert 4 와 Revert 3 을 했다고 메모를 남겨준다.
그리고 원격 저장소에 Push 까지 해준다.
그럼 되돌리기도 성공하고 원격 저장소에도 되돌린 기록이 남는다.
형상관리라는 목적에는 더 부합한 방법이다.
Revert는 언제 유용하게 쓸 수 있냐면 다음과 같은 상황을 가정해보자.
ver1.1에서 feature/A 기능을 추가해서 ver1.2를 만들었다. 그런데 feature/A 기능은 빼고 ver1.1 상태에서 feature/B를 추가하고 ver1.3을 만들고 싶은 상황이다.
만약 check out ver1.1을 한 다음에 feature/B 브랜치를 새로 만들고 기능을 추가한 뒤 main 브랜치로 넘어와서 바로 feature/B 브랜치를 바로 merge해 버리면 1. 충돌이 발생하거나 2. feature/A의 기능이 그대로 남을 수 있다.
이 때는 main 브랜치에서 revert ver1.2를 통해 feature/A의 변경사항을 되돌리고 다시 커밋을 한뒤 feature/B를 merge하면 올바르게 통합이 가능하다.
'개발도구' 카테고리의 다른 글
Tera Term ] 설정 저장하기 (0) | 2022.09.20 |
---|---|
CSV 파일 첫 글자 깨짐 현상 해결방법 (0) | 2022.09.18 |
네트워크 프린터 연결 방법 (0) | 2022.09.07 |
Git ] Private 레파지토리에 협업자를 초대하기 (0) | 2022.09.07 |
Git ] fork 와 pull request 로 협업 과정 (0) | 2022.09.07 |