[알쓸신잡] 당신의 git reset이 진짜 reset이 아닌 이유

유인호·2024년 5월 20일
0

알쓸신잡

목록 보기
20/20
post-thumbnail
post-custom-banner

0. 서론

Github에 취미로 AWS키 같은거 퍼블릭으로 올리는 사람들이 꽤 많은데, 이를 뒤늦게 알아채고 git reset으로 돌리는 개발자들이 꽤 많다.

하지만,,, 정말 git에서 AWS키가 지워진건가?

1. 커밋 실수

일단 이런 폴더에서 작업을 진행하고 있다고 치자.

touch awskey.txt
git add .
git commit -m "awskey"


awskey라는 파일을 하나 만들고, 커밋까지 진행해주었다.
이렇게 커밋하여 깃허브에 푸시까지 했다면 동료 개발자들에게 집단 린치를 당했겠지만, 다행히 다시 제정신이 돌아와 커밋을 돌리는 작업을 한다.

2. 되돌리기

git log

보아하니 d337490c3d8b00f0e742ed49fb479c9a4f4c73bf 커밋에서 문제가 생겼기 때문에, 그 이전 시점인 56e45f94da289d600ebf9d69bcdd65ac2e81399d 커밋으로 되돌아가면 좋을 것 같다.

git reset --hard 56e45f94da289d600ebf9d69bcdd65ac2e81399d

파일을 보아하니 잘 되돌아 온것 같다. 그리고 깃허브에 푸시를 하였고, 그렇게 문제는 해결되는 듯 싶었다.

3. 정말 잘 지워진건가?

AWS키를 노리는 사람들은 이런 개발자들의 실수를 잘 캐치한다.
깃허브에서 클론을 받아 이런 명령어를 실행해본다.

git reflog

reflog를 실행해보니 뭔가 수상한 내역들이 있다.

d337490 이부분에 무언가가 있을것만 같아 다음 명령어를 실행해본다.

git reset --hard d337490

!!!!

안전할 것만 같았던 AWS키가 AWS키 헌터들 손에 넘어가게 되었다.

4. 그럼 어떻게 처리 해야 하는가?

[Git] GitHub 저장소의 특정 파일, 디렉토리 커밋기록을 모두 제거하기

참고

profile
🍎Apple Developer Academy @ POSTECH 2nd, 🌱SeSAC iOS 4th
post-custom-banner

0개의 댓글