혼자서 이것저것 연습하고 끄적이다보면
민감정보를 github에 올리는 실수를 저지를 수 있습니다.
API key나 나의 비밀번호, ip address등의 정보가 그대로 올라간 경우
자칫하면 해당 API 제공자측에서 나의 계정을 (일시)정지시킬 수도 있는데요,
이를 해결하려면 API key, 비밀번호를 바꾸는 건 물론
(처음부터 dotenv 파일을 수시로 관리해서 이런 일이 안일어나도록 해야겠지만)
github에 올라간 문제파일의 url주소 자체를 지워야 합니다.
1. 돌아가고자 하는 지점 찾기 $git log
$git log
2. 리셋하기
$git reset --hard 41e003f04d620aea09cf2d89e27ff255af56c03d // 돌아가고자 하는 지점의 commit
3. force 옵션으로 github repo에 저장하기
git push -f origin master
이를 이해하기 위해서는 git의 commit data가
일종의 트리구조로 이루어져 있음을 알아야 합니다.
git reset 명령은 실행시 ref. pointer의 위치가 바뀌는 것은 물론,
pointer를 기준으로 노드끼리의 연결을 끊어냅니다.
주의해서 써야 할 옵션입니다.
--hard 옵션을 선택한다면 다시는 기록을 되돌릴 수 없습니다.
지정된 commit 이후의 기록과 파일들을 모두 지웁니다.
기본 옵션입니다. ($git reset과 $git reset --mixed는 동일)
commit 기록은 삭제하되, 기존의 파일들을 untracked 상태로 제공합니다.
commit 기록은 삭제되지만, 파일은 staged 상태로 남습니다.
이제 reset을 완료했으니 remote repo만 수정되면 끝입니다.
하지만 이 상태에서 push를 했다간 아래와 같은 에러가 나고 맙니다.
이때 force 옵션을 주면 강제로 push해줄 수 있습니다.
물론 저처럼 혼자 끄적이는 branch에서라면 편하게 이런 방법을 쓸 수 있겠지만,
공유 branch라면 다른 팀원들이 삭제 대상인 commit 단계에서 작업중인지 확인해야합니다!
VS code로 github 연동하기 (0) | 2021.03.09 |
---|
댓글 영역