본문 바로가기

좋아하는 것_매직IT/23.git

Git repository에서 file 완전삭제하는 방법을 공유합니다.(feat. 당황스러움극복가능)

반응형

출처 : Git

블로그 목적을 정리해본다. 

  • Git repository에서 directory & file 을 완전하게 삭제하는 방법에 대해서 간단하게 공유함.

블로그 요약을 정리해본다.

  • Git repository를 사용할때, 본인의 의도와는 다르게 개인정보나 password 등등이 들어간 file이 remote 에 push 될 경우 처리방법를 정리함.

 

블로그 상세

  • Git 저장소를 사용할때, 본인의 의도와는 다르게 개인정보나 password 등등이 들어간 파일이 remote 에 push 될 때가 있는데요...
  • 저역시 오늘...그런경우가 발생해서 좀 많이 당황을 했네요..ㅎㅎㅎㅎ
    • 그래서, 빠르게 대처방법을 찾아서 조치했습니다. ;;;
  • 그리고 이렇게 해당 대처 방법을 아래와 같이 정리해봅니다.
  • 혹시나 저와 같은 경험을 하신분은 절대로 절대로 당황하지 마시고, 이 블로그를 통해서 즉각조치(?) 하시면 될것 같습니다. 
  • 이블로그 내용이 비록 적은 내용이지만...유용한 블로그가 되길 바라면서요...
  • git repository에 개인정보 & password 들이 올라갔다고 걱정되시는 분께서는 혼미한 정신(?) 을 가다듬고 차근차근 읽어보시고 실행하시면 좋을 것 같아서 공유드립니다.
  • 즉, 해당 파일을 모두 삭제하고 git 안의 형상 로그에서 모두 삭제한 후 remote 서버에 반영하고 싶을때는 아래 명령을 순차적으로 사용및 실행 하시면 됩니다.
  •  
  • $ git filter-branch --tree-filter 'rm -rf ./2.smtp_cc_send' HEAD $ git update-ref -d refs/original/refs/heads/master $ git push origin master --force
  • 차근차근...설명해 보자면요...
  • $ git filter-branch --tree-filter 'rm -rf ./2.smtp_cc_send' HEAD
  • 위의 명령은 "2.smtp_cc_send" 라는 디렉토리를 모두 삭제하고 관련된 commit 메시지도 처리하는 명령입니다.
  • $ git update-ref -d refs/original/refs/heads/master
  • 만약, branch backup 때문에 repository의 commit 또는 특정명령어가 실행이 안될 수 있는데요...위의 명령을 실행하면 되고요
  • $ git push origin master --force
  • 위의 명령어는 remote 에 force push를 실행하는 명령입니다.
    • 결과를 말씀드리면...
      • 그러면...깨끗하게 처리됩니다.
  • 그럼 실제 실행결과를 확인해 볼까요??
  • 우선, 2.smtp_cc_send 디렉토리에 파일중 민간한 정보를 가진 파일내용이 있을경우를 가정해보자고요...
  • 아래와 같이 2.smtp_cc_send 디렉토리가 있는 것을 확인하고(..마음속으로 지워야하는데...라고 생각한후 바로 위에 명령어들을 실행에 옮깁니다...)
  • 아래와 같이 2.smtp_cc_send 가 삭제됨을 확인할 수 있습니다.
  • 그리고 git 페이지에 접속해서 확인해도 해당 디렉토리가 사라졌음을 확인할 수 있었습니다. (깨끗하게 사라졌죠? )

결론

  • 이제까지, "Git 저장소에서 디렉토리 및 파일을 완전하게 삭제하는 방법" 에 대해서 소개및 설명을 드렸는데요...
  • 아무튼, 어떻게 도움이 되셨는지 모르겠습니다..최대한 쉽게 설명드리려고 노력했으나....^^; 블로그를 작성하면 할 수록 어떻게 하면, 보다 쉽게 정보들을 전달할 수 있을것인가.. 고민을 더욱 해보겠습니다.
  • 아무튼, 앞으로도 더욱 열심히 노력하는 제가 되도록 노력하겠습니다.
  • 오늘도 마지막까지 제 글을 끝까지 읽어주셔서 진심으로 감사드리고, 제 글이 조금이라도 여러분의 각자의 삶을 살아가시는데 도움이 되셨길 기원합니다.
  • 앞으로도 더욱 좋은 블로그를 남기는 제가 되도록 노력하겠습니다. 사랑합니다!

나의 목표 및 다짐을 항상 내곁에 두기

  • 목표
    • 나의 강점을 바탕으로 나의 일을 잘해냄으로써 타인과 사회를 아릅답게 만든다.
    • 현재 내가 가진 능력으로 누군가에 도움이 될 수 있을까? 에 대해서 항상 생각하기
    • 나는 블로그 생태계에서 IT 테크관련 파워블로거가 반드시 된다!
  • 목표를 이루기 위한 실천방안
    • 꾸준한 블로깅/기록법/독서법으로 넘버원이 아닌 온리원이 되보자.
    • 천사불여일행(千思不如一行)을 항상생각하며 체화 및 각인시키자.
      • "천번 생각하는것보다 한번 행동하는 것이 더 중요하다."
    • 기기일약 불능십보(騏驥一躍 不能十步) / 노마십가 공재불사(駑馬十駕 功在不舍)
      • 천리마도 한번에 열걸음을 뛸 수 없고, 느리고 둔한말이라도 열흘이면 하룻길을 간다.
    • 모든 실수에는 마술이 숨어 있다. 따라서 나는 실수하면 실수할수록, 그런 실수에서 더 많이 배울수록 삶에서 더 많은 마술을 갖는다.​​​​ 
300x250