.gitignore을 설정하지 않고 github remote에 push한 경우

Goal

  • github에 잘못 올라간 파일을 삭제할 수 있다.
  • .gitignore을 설정하지 않고 github remote에 push한 경우, 잘못 올라간 파일을 삭제할 수 있다.


들어가기 전

예를 들어, IntelliJ IDE를 사용할 때 .out 폴더를 .gitignore에 넣지 않고 원격 저장소에 push했다고 가정하자. (IntelliJ의 .out 폴더: 빌드/컴파일 시 .class 파일이 포함된 프로젝트의 출력이 포함되는 위치)

Github에 잘못 올라간 파일 삭제 과정

1. 원격 저장소에서 파일 삭제하기

이미 github remote에 push를 했기 때문에 로컬의 저장소에서 파일을 삭제해도 원격 저장소에서는 삭제되지 않는다.

따라서 아래와 같이 git rm –cached [File Name] 명령어를 이용하여 원격 저장소에서 잘못 올라간 파일을 삭제해야 한다.

// .idea/modules.xml 파일 삭제
$ git rm --cached .idea/modules.xml
// .idea 폴더 하위의 모든 파일 삭제 
$ git rm --cached -r .idea/

2. .gitignore 설정하기

만약 .gitignore가 제대로 설정되어 있지 않다면 .gitigore 설정하여 다음에는 개인이 관리해야되는 파일들이 원격 저장소에 올라가지 않도록 해야한다. .gitignore 설정하기 를 참고하여 .gitignore를 설정한다.

TIP) 또한 .gitignore는 git add 명령어 전에 설정되어 있어야 적용이 가능하다는 것을 알아두자.

3. 원격 저장소에 적용하기

버전 관리에서 완전히 제외하기 위해서는 반드시 commit 명령어와 push를 수행해야 한다.

// 버전 관리에서 완전히 제외하기 위해서는 반드시 commit 명령어를 수행해야 한다.
$ git commit -m "Fixed untracked files"
// 원격 저장소(origin)에 push
$ git push origin master

[참고] Github에 올라간 Commit 내역까지 삭제하는 방법

git 명령어 실수 해결하기에서 git push 취소하기를 참고하시기 바랍니다.

git rm 옵션 참고

관련된 Post

References