약 2분

Git 캐시 지우는 방법

git rm -rf --cached
Git 캐시 지우는 방법
Photo by GoGoNano / Unsplash

서론

카카오 테크 캠퍼스 3기 백엔드 과정에서 자바로 간단한 계산기를 구현해보는 과제를 받았다.

과제 요구사항대로 Intellij IDEA에서 빈 프로젝트를 만들고, 간단한 샘플 코드를 추가해 커밋 후 깃허브에 업로드했더니...

package com.doorcs.calculator;

public class Calculator {

    public static void main(String[] args) {
        System.out.println("Hello, Calculator!");
    }
}

src/main/java/com/doorcs/calculator/Calculator.java

.idea가 왜 생기지?

커밋 전에 분명 .gitignore 파일에 .idea 디렉토리를 포함시켰음에도 GitHub 리포지토리에 .idea 디렉토리가 올라간 것을 확인할 수 있었다.

커밋 로그를 깔끔하게 관리하고 싶다는 욕심에 리포지토리를 생성할 때 README.md 파일도 빼 뒀는데, 첫 커밋부터 이렇게 찜찜하게 넘어갈 수는 없었기 때문에 이유를 찾아봤다.

원인

GitHub의 remote repository와 연결하기 전에 IDE에서 프로젝트를 생성할 때 제공하는 Create Git repository 옵션을 사용했는데, 변경된 .gitignore 설정이 적용되기 전에 Git에서 .idea 디렉토리를 이미 트래킹(tracking)하고 있었기 때문에 .idea 디렉토리까지 다른 변경사항들과 함께 commit된 것이었다.

즉, Git 캐시가 문제였다!

해결 방법

git rm -rf --cached 명령을 통해 Git 캐시를 삭제해주니, .idea 디렉토리가 Changes 목록에서 사라진 것을 확인할 수 있었다.

편안~