본문 바로가기

develop/Git, CodeEditor, Package Manager

[인텔리제이] xml 파일 .gitignore 해도 없어지지 않는 경우

반응형

인텔리제이에서 File - new - project...로 언어가 javascript인 프로젝트를 생성했다. 

웬 xml 파일과 .iml 변경사항에 추가되어있다. 

 

.xml 파일의 정체

IntelliJ IDEA와 같은 IDE에서 프로젝트 설정을 저장하는 용도인데,

나는 해당 파일을 사용할 생각도, 변경사항을 git으로 관리할 생각도 없으므로 

changes에서 없어졌으면 좋겠다

 

.xml 파일  changes에서 안 보이도록 제거하는 방법

프로젝트 루트 경로에 .gitignore를 만들어서 해당 파일에 아래와 같이 추가한 뒤 저장한다. 

.idea/ //.idea 파일 무시
*.xml //모든 XML 파일을 무시

 

하지만 저장해도 chages에서 제거되지 않을수 있다. 

이 경우에는 이미 git 에서 관리 되는중이므로 캐시에서 제거를 해줘야한다. 

git rm --cached *.xml //현재 디렉터리, 하위 디렉터리의 모든 xml 파일을 git 캐시에서 제거


// 에러 발생
error: the following file has staged content different from both the
file and the HEAD:
    .idea/workspace.xml
(use -f to force removal)

했는데 이런 에러가 발생했다. 

 

해당 파일이 Git 스테이지에 있지만, 현재 파일 시스템의 내용과 이전 커밋(HEAD)와 다르다는뜻이라고 한다. 

이때는 강제 제거를 하기 위해 -f를 추가하여 다시 입력해보자. 

 

git rm --cached -f *.xml //xml 파일을 git 인덱스에서 강제 제거

 

changes 에 있던 xml 파일이 모두 사라졌다!