협업을 하다가 실수로 불필요한 파일 및 민감한 정보까지 GitHub
에 올린 경우가 있었습니다.
아래의 경우가 예시입니다.
.class
Gradle
과 IntelliJ
의 경우 idea 폴더 하위 파일들특히 마지막 민감한 정보들을 GitHub에 올리면 해커들의 공격대상이 쉽게 됩니다. 실제로 지인 중 GitHub에 AWS RDS 정보를 올리고 랜섬웨어에 감염된 경우가 있습니다. 뿐만 아니라 AWS 폭탄 과금의 경우도 인터넷에서 종종 찾아볼 수 있어 더욱 주의해야 합니다.
위와 같은 내용들은 .gitignore
라는 파일에 추가를 해야합니다.
.gitignore
란 Git 버전 관리에서 제외할 파일 목록을 지정하는 파일입니다..gitignore
파일에 추가하면 GitHub에 해당 내용을 추가하지 않습니다.
1. 원격 저장소 파일 삭제
// 원격 저장소 및 로컬 저장소의 파일을 삭제
$ git rm -r [File Name]
// 원격 저장소에 있는 파일만 삭제
// 로컬 저장소의 파일은 삭제되지 않음
$ git rm --cached -r [File Name]
위 사진에서 .gradle
폴더와 build
폴더 및 하위 파일을 원격에서는 삭제하고, 로컬에는 그대로 놔둘 예정이기 때문에 git rm --cached -r [폴더/파일이름]
를 사용합니다.
2. .gitignore 설정
.gitignore 파일을 생성하고, 위에서 제거한 build
.gradle
폴더를 추가합니다.
위 사진에서 build
.gradle
폴더의 색상이 주황색으로 된 걸 확인할 수 있습니다. 위와 같이 주황색의 폴더가 Git 버전 관리에서 제외할 폴더입니다.
3. 원격 저장소에 push로 적용
// 버전 관리에서 완전히 제외
$ git commit -m "fix : untracked files"
// 원격 저장소(origin)에 push
$ git push origin main
// 또는 $ git push origin master
push를 하고 GitHub를 확인해보면 build
.gradle
폴더가 완전히 삭제된 걸 확인할 수 있습니다.
인텔리제이 기준으로 .idea 폴더나 target폴더 등 보통 gitignore에 추가되는 파일 이외에,
민간함 정보들은 꼭 gitignore 파일에 추가해서 GitHub에 올리지 않도록 수정해야 합니다!