gitignore에 env파일을 올렸다던가 올리지 말아야할 파일들을 올렸을 때 git 원격 레파지토리에서 파일을 삭제해주고 커밋 기록까지 지워줘야 한다.

1. git 원격 레파지토리에 있는 파일 삭제하기

git에 올리면 안되는 파일이라던가 잘못된 파일을 올렸을 때 git의 원격 저장소에 있는 파일을 먼저 삭제해준다.

git rm -- [파일 경로] 
// 원격 저장소와 로컬 저장소의 파일 삭제

git rm --cached [파일 경로]
// 원격 저장소의 파일만 삭제

ex)

git rm --cached -r ./scripts

2. git 원격 레파지토리에 있는 커밋기록 삭제하기

git에 파일을 삭제해주어도 커밋된 기록이 있기 때문에 커밋 내역까지 삭제해주어야 한다.

git log 
// 커밋 내역 확인 (q를 누르면 내역에서 나갈 수 있다.)

git reset HEAD~숫자
// ~1이면 최근 내역 1개, ~2면 최근 내역 2개

git log
// 삭제하고자 하는 커밋 기록이 삭제되었는지 확인

git push -f origin [브랜치] // or
git push -force origin [브랜치] 
// 커밋 히스토리를 강제로 push 

// 여럿이서 작업하는 프로젝트인 경우
// 원격 저장소에서 삭제되기 전에 다른 사람이 해당 브랜치의 커밋을 pull request 했다면,
// pull로 가져온 사람의 로컬 저장소에는 적용이 안된다.