깃허브(Github) 커밋로그 전체 삭제하기

깃허브 커밋 로그

깃허브(Github)에 실수로 업로드된 파일이나 이전에 업로드된 내용 중 공개되면 안되는 파일을 커밋(commit)하여 깃허브에 history 기록이 있을 경우에는 저장소를 삭제하고 새로운 저장소에 다시 파일을 업로드하는 방법도 있지만, 기존의 저장소를 유지하면서 commit 기록을 삭제하는 방법도 있습니다.

 

 

전체적인 흐름은 다음과 같습니다.(이미지 출처1,출처2,출처3,출처4)

 

로컬 저장소에 있는 파일을 기존에 main브랜치에서 사용되었다면 새로운 temp_branch를 생성하고 기존의 파일을 복사합니다.

이후에 기존에 있던 main 브랜치는 삭제한 뒤(commit기록을 포함) 원본 저장소의 파일을 복사한 temp_branch를 commit 합니다.

그리고 업로드된 브랜치이름을 다시 main branch로 바꾸어 최종적으로는 commit의 기록이 초기화됩니다.

 

 

깃허브 커밋로그(history) 전체 삭제하기

먼저 깃허브에 업로드된 프로젝트가 있는 로컬환경의 경로로 이동하여 git bash를 실행합니다.

bash터미널에서 아래 명령을 순차적으로 입력하면 됩니다.

 

git checkout --orphan temp_branch

새로운 브랜치를 생성하되, 현재 커밋의 기록을 포함하지 않는 독립된 브랜치를 새로 생성합니다.

 

git add -A

현재 디렉토리의 모든 파일을 commit이 가능한 스테이징(Staging)영역에에 추가합니다.

기존 파일들을 유지하면서 새로운 브랜치에 추가하기 위한 과정입니다.

 

git commit -am "Initial commit"

Git에서 파일의 변경 사항을 스테이징하고 커밋합니다.

 

git branch -D main

프로젝트 초기 생성시에 기본으로 생성되는 기존의 main 브랜치를 삭제합니다.

이 과정에서 이전에 커밋 로그가 제거됩니다.

 

git branch -m main

새로운 브랜치를 만들고 파일을 복사하였던 temp_branch의 이름을 main으로 다시 변경합니다.

 

git push -f origin main

새로운 main 브랜치를 강제로 원격 저장소에 push 하여 반영합니다.

이 과정으로 기존의 파일 상태는 유지되며 Git의 커밋로그는 완전히 새로 시작하게 됩니다.

 

 

전체 명령어

git checkout --orphan temp_branch
git add -A
git commit -am "Initial commit"
git branch -D main
git branch -m main
git push -f origin main

 

Top