티스토리 뷰
Git Revert Commit (이전 커밋)으로 되돌리기
Revert의 개념을 확실히 잡기 위해 아래와 같이 example.txt라는 파일 하나에
"1번"이라 기재 후 커밋
"2번"이라 기재 후 커밋
"3번"이라 기재 후 커밋
"4번"이라 기재 후 커밋
"5번"이라 기재 후 커밋
총 다섯 번의 커밋을 진행 후
네 번째 커밋에서 Revert 적용
conflict(충돌) 발생
충돌로 인해 변경 된 소스
필자는 네 번째 커밋 정보에서 Revert.. 결국 세 번째 내용으로 되돌아 가는 것이니 아래와 같이 소스 수정 및 저장 후
(vscode를 사용중이라면 "Accept Incomming Change" 사용 추천)
충돌로 Unstaged에 있는 파일을 Add 해서
Stage로 올린 후 커밋 및 푸시
충돌 해결 및 되돌리기 완료!
※ "팀 개발을 위한 Git GitHub 시작하기"라는 책을 읽다 보니 "Revert는 최신 커밋부터 취소하는 것이 좋다"라는 이유를 알게 되었네요.. 왜? 최신 커밋부터 Revert하면 충돌로 인한 시간 낭비를 없앨 수 있기 때문에
테스트로 마지막으로 커밋 된 "4-1. 네 번째 Revers 충돌 수정"에서 Revert를 실행해 보시기를.. 충돌 없이 Push만~
아울러 Revert는 다음에 설명할 Reset과 다르게
Commit을 삭제하는 것이 아닌, 이전의 Commit 내역을 삭제하지 않고, 새로운 Commit을 생성하는 방식
아래의 History를 보면 1~5까지 삭제된 Commit이 존재하지 않고 새롭게 Commit이 생성된 것을 확인 할 수 있음
(Revert... 이라는 메시지 영역)
※ 추가로
비쥬얼스튜디오 코드는 충돌 해결을 위한 매우 유용한 툴이라 생각됩니다.
간단히 기능을 정리하자면
- Accept Current Change를 선택하면 "====="를 기준으로 위의 코드 HEAD(현재 작업중인 브런치, 현재 작업중인 브랜치의 최근 커밋을 의미) 영역이 남고
- Accept Incoming Change를 선택하면 "====="를 기준으로 아래의 코드가 남고
(병합 대상이 된 브랜치의 내용으로 변경됨. 위에서 보여준 경우가 이에 해당됨) - Accept Both Change를 선택하면 위, 아래 모두 코드가 남음
- Compare Change를 선택하면 충돌남 부분을 좀 더 보기 쉽게 아래와 같이 보여줌
반응형
'프로그래밍 > Git' 카테고리의 다른 글
[Git] Stash(스태시) 변경 사항을 나만의 공간에 저장 - 정리중 (1) | 2022.01.07 |
---|---|
[Git] Reset 이전 커밋(Commit)으로 되돌리기 (0) | 2022.01.06 |
[Git] Cli(Command Line Interface) 명령어 - 정리중 (0) | 2022.01.04 |
댓글