협업을 하다가 실수로 불필요한 파일 및 민감한 정보까지 GitHub에 올린 경우가 있었습니다.
아래의 경우가 예시입니다.
.classGradle과 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에 올리지 않도록 수정해야 합니다!