ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • GitHub 이력을 지우고 싶을 때
    ETC 2022. 7. 25. 23:50

    Problem

    GitHub에 Database의 비밀번호라든지 Secret Key 같은 민감한 정보를 올리게 된다면 다시 커밋을 덮어씌운다고 하더라도 기존에 올렸던 정보는 history에 남게 된다. 이력 자체를 지우고 싶을 때, 어떻게 시도했는지 잊어버릴 까봐 자다 말고 다시 일어나서 기록해본다.

     

     

    Try

    SourceTree를 사용하고 있다면 내가 되돌리고자 하는 커밋 메시지를 선택한 후

    이 커밋까지 현재 브랜치를 초기화

    를 선택해준다.

     

    Soft - 모든 로컬 변경사항을 유지
    Mixed - 작업 상태는 그대로 두지만 Index는 리셋
    Hard - 모든 작업 상태 내 변경 사항을 버림

    나와있는 메시지대로 Hard의 경우, 내가 작업한 것까지 날아가게 되므로 Soft나 Mixed를 선택해주는 것이 좋다.

     

    그렇게 브랜치 초기화를 해주고 나면 여기서부터 중요하다.

    바꾸려고 하는 파일을 잘 수정해준 다음에 commit을 하고 Terminal을 열어준다.

    이 상태로 push를 하려고 하게 되면 충돌이 나는데다가 SourceTree로는 강제 푸시 버튼이 막히는 상태가 되어, Terminal에서 강제로 push를 해주어야만 한다.

     

    주의!

    내 뒤에 올렸던 파일까지도 이력에서 사라지지만 작업화면에는 남아있기 때문에 반드시 함께 commit을 해주어야하는 걸 잊지 말자!

     

    $ git push --force

    강제로 push를 하게 되면 GitHub에서의 이력이 바뀌는 것을 확인할 수 있다.

     

     

    Result

    성공!!

     

     

    Optional

    force는 되도록 사용하지 않는 게 좋으나, rebase 같은 경우는 잘 알아두는 것이 좋다고 한다. 이건 나중에 추가로 덧붙이기로.

Designed by Tistory.