본문 바로가기

Git, Github

[Git] 잘못 올라간 소스 원복하는 방법 (Revert, Reset)

728x90

최근 서버에 잘못된 소스를 올려 원복해야하는 일이 있었는데, 원복에 익숙치 않아 헤매었었다.

인텔리제이를 기준 원복하는 법을 알아보자.

 

0. Build 툴의 Build History를 통해 복구해야 할 커밋 로그를 확인한다.

 

 

 

 

1. IntelliJ Git 커밋로그에서 원복해야할 커밋들을 드래그한다.

 

 

 

 

2. Revert Commits를 실행하면 선택한 커밋로그의 반영분이 복구된다.

 

ResetRevert 차이점

Reset: 반영 내역과 커밋 로그까지 함께 되돌린다. (원복 기록이 남지 않음)

Revert: 반영 내역을 되돌리며 되돌린 행위까지 기록으로 남긴다. (원복 기록이 남음)

 

 

 

 

3. Push하기 전에 복구된 커밋들을 Squash해준다.

 

Squash: 여러 커밋 로그들을 묶어서 한 개의 커밋으로 Push할 수 있다.

이미 원격저장소에 Push커밋들은 위 사진과 같이 Squash기능을 사용할 수 없으므로 주의

(이미 Push커밋을 Squash하려면 원격저장소의 커밋로그를 덮어써야 하므로 다른 팀원들에게 Conflict를 일으킬 수 있다.)

 

 

 

처음이 어렵지 두번은 쉽다.