1. Revert 이용해보기
Add Costco to Choeng
rever는 되돌릴것 즉, 취소할 커밋의 해시를 찾아야합니다. Add Costco to Cheong의 해시를 git log를 사용하여 복사한 후 아래처럼 명령어를 작성해주도록 하겠습니다.
# revert 뒤에는 자신의 커밋의 해시를 작성
git revert 7d2426aa309e26704aec3382bec85ea562b35bac
작성한다면 아래의 사진과 같은 화면이 출력이 될 것입니다.

맨 상단에 보이는 주황색 글씨가 저장될 커밋의 이름이며, 만일 수정할 것이 없다면 :wq를 쳐주시면 순조롭게 빠져나옴과 동시에 커밋으로 저장이 됩니다.(:wq와 같은 명령어는 3번 글을 봐주시길 바랍니다.)
알기 쉽게 소스트리를 이용하여 확인해보도록 하겠습니다.


VS코드와 소스트리를 보게 된다면 나와있는 것처럼 Costco가 사라진 것을 확인할 수 있으며 소스트리에서는 "Add Costco to Cheong"를 반대로 실행하는 커밋이 하나 새로 생긴걸 확인할 수 있습니다.
Replace Cheong with apeach
이번에는 Replace Cheong with apeach로 돌아가보도록 할텐데 우선 소스트리를 이용하여 확인을 해보도록 하겠습니다.

사진을 본다면 Cheong.yaml을 수정했고 apeach.yaml이 생겨났으며 Back.yaml이 지워진 것을 볼 수 있으며 만약 revert로 되돌아간다면 Cheong.yaml에서는 ChonegYa가 생겨나고 Lion이 지워지며 apeach.yaml은 사라지고 Back.yaml은 다시 생겨날 것입니다. 이것만 본다면 아무런 오류가 없어 보이지만 문제는 Replace Game with Friend에 있습니다. 왜냐하면 Replace Cheong with apeach에서 생성한 apeach.yaml이 Replace Game with Friend에서는 수정하였기에 충돌이 일어나기 때문입니다.
그렇다면 어떻게 해야할까요? 일단 해보도록 하겠습니다.
자신의 Replace Cheong with apeach 커밋의 해시를 알아낸 후 아까와 같이 명령어를 작성해보겠습니다.
git revert a6c3596bd065305eae6f3dc938907a34a4e3f985
명령어를 작성한다면 아래와 같은 메세지가 터미널 창에 뜰 것입니다.

맨 마지막 줄에 REVERTING을 보면 알 수 있듯이 revert를 아직 진행하는 중임을 알 수 있습니다.
또한 윗줄을 보면 git add/rm <pathspec> 을 보면 알 수 있듯이 오류가 발생하는 파일을 추가하든지 지우든지 하고서 git revert --continue 즉, 다시 진행을 해달라고 합니다. 그렇다면 우리는 아래와 같은 명령어를 사용하여 오류가 발생하는 파일인 apeach.yaml을 지워주도록 하겠습니다.
git rm apeach.yaml
해당 명령어로 지워주었으면 git revert --continue를 사용하여 계속해서 위에서 했던 것처럼 진행해주시면 됩니다.
2. Revert에서 커밋하지 않기
위에서는 revert를 사용하면 계속해서 커밋이 자동으로 되었지만 우리가 업무를 하다보면 revert를 사용하고 수정 후 한번에 커밋을 다시 해주고 싶을 수 있습니다. 그런 상황을 이용하여 다음과 같은 명령어가 존재합니다.
git revert --no-commit (돌아갈 커밋 해시)
해당 명령어를 사용하면 돌아갈 커밋으로 revert를 하지만 커밋은 되지 않은 상태로 진행이 됩니다. 그렇기에 다른 작업을 추가한 후 함께 커밋을 할 수 있게 됩니다.
만약 이 revert를 하고서 취소를 하고 싶다면 커밋이 된 것이 아니기에 git reset --hard를 이용하여 취소(마지막 커밋으로 복구)가 가능합니다.
3. Reset을 이용하여 돌아가기
이제는 이전 글에서 했던 것처럼 reset을 이용하여 Replace Game with Friend로 돌아가보도록 하겠습니다.
reset을 사용하여 돌아가는 명령어는 다음과 같습니다.
git reset --hard (돌아갈 커밋의 해시)
'Git & GitHUB' 카테고리의 다른 글
[Git] Branch 만들기 (0) | 2022.07.08 |
---|---|
[Git] 과거의 프로젝트로 돌아가기(SourceTree) (0) | 2022.07.01 |
[Git] 과거의 프로젝트로 돌아가기(Reset) (0) | 2022.06.29 |
[Git] Git에 파일 저장하기 (0) | 2022.06.28 |
[Git] Git의 관리에서 특정 파일을 배제하는 방법 (0) | 2022.06.27 |