본문 바로가기
Git

Git History 에서 특정 파일 기록 삭제

by shulk 2023. 11. 18.

처음 깃허브 연동할때 gitignore에 올라가지 않도록 설정한 파일 적었는데 작업을 많이 하고 커밋을 많이 해온 상태에서 깃허브에 올리면 안되는 파일(application.properties) 이 올라가 있는걸 발견했다!

 

1) 그래서 일단 application.properties를 로컬에서 백업용 복사하고 깃허브 자체에서 직접 그 해당 파일을 삭제후 커밋을 했다.

 

2) 그러면 깃허브가 로컬보다 커밋이 앞선 상태라 pull을 하는데 pull을 하면 로컬에 application.properties 파일도 같이 사라지지만 백업용 복사했으니 다시 application.properties파일을 로컬의 해당 위치에 넣어준다.

 

3) 이제 깃허브에 application.properties 파일을 삭제했지만 커밋 히스토리에 여전히 정보가 남아있으니 히스토리 해당 파일 기록 삭제 해야한다! 그러므로 일단 로컬쪽 커밋 해당 파일 기록 삭제하고 원격쪽도 적용 해줘야하니

로컬쪽 기록 삭제 하는방법은 ↓

 git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch 삭제할 파일명' --prune-empty -- --all

 

정확한 예시 ↓   (application.properties 기록 삭제할경우)

 git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch ./src/main/resources/application.properties' --prune-empty -- --all

 

4) 3번의 작업 기록 삭제후 이제 원격쪽인 깃허브도 적용해야하니  강제로 푸쉬해주면 된다. 

 git push --force --all

 

 

지금은 일단 과제중 private이라 괜찮지만 public상태에서 이런경우엔 이미 모르는 사람이 내 정보를 훔쳐갈 수도 있으니 맨처음 깃허브 연동할때부터 올라가면 안되는 파일 gitignore에 등록했는데도 올라갔나 확인해봐야한다!!

'Git' 카테고리의 다른 글

직접 gitignore 생성하기  (0) 2023.11.14
Git 추가정리-1  (0) 2023.10.11
브랜치 정리  (0) 2023.10.10
커밋 정리  (0) 2023.10.08