git을 사용 할 때 지금보다 더 아무것도 모를때는 .gitignore의 중요성도 모르고 막 커밋하고 그랬는데 IDE나 툴들을 이용하다 보면 큰 프로젝트들은 개인 환경에 따라서 설정 파일들이 바뀌기도하고 push하고 pull하는데 conflict가 나서 .gitignore을 수정했는데 계속 트래킹하는 파일이 존재해서 어떻게 하면 수정 할 수 있는지를 포스팅한다.
문제 상황
바로 이전 포스트에서도 포스팅을 하였지만 안드로이드로 프로젝트를 하나 진행하고 있었고 툴은 Android Studio를 통해서 개발을 하고 있었다. 커밋을하고 push를 할때마다 자꾸 로컬의 환경설정 파일들과 gradle 캐시 등등 여러 파일도 같이 push가 되어서 이제야 .gitignore에 파일을 추가했는데 여전히 트래킹 되는 파일이 존재해서 해결책이 있기에 포스팅을 해본다.
현재 내 로컬에서 문제는 해결된 상황이라서 스크린샷은 없고… 설명을 하자면 .gitignore에 .idea/가 추가되어 있는데도 계속 해서 .idea/workspace.xml과 같은 파일이 git에서 변화를 감지하고 commit 해야 할 목록에 추가를 한다….
이게 구글링을 해보니까 나중에 .gitignore에 추가를 해도 git이 이미 파일을 트래킹하고 있어서 이러한 트래킹 기록을 한번 싹 물갈이 해줘야한다고 한다. 더 자세히 들어가면 cach를 싹 밀어줘야 한다.
- .gitignore에 파일이 추가 되었는데도 git이 계속 파일의 변화를 감지할 때
주의 할 점!
NOTE: 작업하던 내용들이 있으면 반드시 commit을 진행하고 아래 작업을 해야합니다!
문제 해결
- 아래 명령어들을 shell에서 진행해주면 됩니다.
- 캐시를 지우고 새로 add하는 과정으로 볼 수 있습니다.
...
git rm -r --cached .
git add .
git commit -m "Fix untracked files"
...
그래도 트래킹이 된다면…
- 가끔 그래도 트래킹이 될 때가 있는데…(특정 브랜치에서 하고 다른곳으로 넘어가면 적용이 안될 때도 본거 같습니다.) .gitignore를 추가하고 다시 remote repository를 clone받으면 문제가 사라진다.