Server And Configuration Management/git

개발 일기 : git 과거 이력 확인하기 & 실수로 git에 잘못 커밋한 경우 복구하는 방법 - [세무민의 코딩일기]

세기루민 2021. 12. 5. 16:11
728x90

이번 포스팅은 git을 사용하다보면 가끔 add를 잘못해서 기존에 있던 파일들을 날리거나 삭제한 경우 

과거 이력을 확인하여 복구하는 방법을 다뤄볼 생각입니다. 


우선 대부분 add를 잘못해서 파일을 날리거나 기존의 변경사항이 생기는건 main에서 작업하는 경우가 대부분입니다. 

그래서 brench를 나눠서 개발을 하게 되면 merge하여 그나마 이런 문제를 최소화 할 수 있습니다.

그래도 부득이한 경우에는 main에서만 작업을 하는데 이때 확인하는걸 보도록 하겠습니다. 

먼저 과거의 이력(Head)를 확인하는 방법은 "git checkout head~숫자" 입니다.

숫자에는 현재 main에서 head를 몇번째 이전단계로 돌리는 것을 말합니다.

아래의 그림을 보는것과 같습니다. 

현재 head는 main이라고 가정하면 

만약 제가 main 위치에서 과거 13번째의 이력을 확인하려면 head~13으로 이동하면 됩니다.

그렇게 된다면 head~13번째로 현재 head가 이동하게 되고

현재 로컬 레파지토리는 main의 파일이 아닌 head~13때 만들어놨던 파일들로 변하게 됩니다. 

따라서 과거 이력으로 넘어가서 해당 파일들을 백업한 뒤 다시 head를 main으로 이동하여

실수로 삭제한 파일들을 백업해주면 됩니다. 

main처럼 브런치도 동일하게 과거 이력을 확인할 수 있습니다. 

따라서 작업하다가 과거의 파일들을 복구하거나 이력을 확인할 때 head를 이동시켜서 보면 됩니다. 

예시

위에서 말한 main으로 head~13번째로 이동하게 되면 로컬 레파지토리의 파일들도 변경되는 것을 볼 수 있습니다. 

head~13번째 위치에서 head를 main으로 이동하게 되면 github에 최종적으로 올라가있는 main의 파일들이 다시 

복구되는 것을 확인할 수 있습니다. 

결론적으로는 과거 이력을 통해서 그때의 파일을 확인할 수 있고 이 방법으로는 다양하게 활용 가능하다.


이번 포스팅은 git 과거 이력을 확인하여 head를 이동하는 방법에 대해서 알아봤습니다. 

다음 포스팅에서도 도움될 만한 정보로 찾아오겠습니다. 

728x90