이미 존재하던 저장소에 .gitignore를 추가하면 적용이 되지 않는 경우가 있다.
나의 경우 기존에 존재하던 팀프로젝트 저장소에 .gitignore를 적용해서 .classpath, .project .settings 와 같은 설정파일들이 git에 올라가지 않도록 하려고 했었는데, git ignore를 추가한 후에도 git에 계속 그 파일들이 올라가 있는 것을 확인했다. 검색을 해보니, 이럴 경우 rm -r --cached 해서 깃허브의 캐시를 삭제해주면 된다고 한다.
.gitignore 적용 안 될 때의 해결법
- 이렇게 했더니 잘 적용되었다.
// git ignore 적용
git rm -r --cached .
git add .
git commit -m "Apply .gitignore"
원격저장소에 실수로 파일을 올렸을 때
- github에 실수로 파일을 올려서, 로컬에서 파일을 삭제하고 push 했지만 여전히 github에 해당 파일이 올라가 있는 경우에도 마찬가지로 github의 캐시를 지워서 해결할 수 있다고 한다.
- 위에서는 모든 캐시를 다 지웠지만 특정 파일의 캐시만 지울 수도 있다.
// 특정 파일 캐시 삭제
git rm --cached [FileName]
파일 삭제
git rm -r : 원격저장소와 로컬의 파일 모두 삭제된다.
git rm -r --cached: 원격저장소에서만 파일이 삭제되고 로컬의 파일은 그대로 둔다.
rm 명령어의 옵션
- 위에서 rm은 당연히 remove인걸 알겠는데 '-r' 옵션이 뭔지 궁금했다.
- 찾아보니 하위 디렉토리를 포함하여 모든 내용을 삭제하는 것이라고 한다.
- 출처: https://shaeod.tistory.com/506
옵션 | Long 옵션 | 설명 |
-f | --force | 강제로 파일이나 디렉토리를 삭제하고, 삭제할 대상이 없을 경우 메시지를 출력하지 않음. |
-i | --interactive | 매번 삭제할 때마다 사용자에게 질문함 |
-l | 셋 이상의 파일을 삭제하거나 하위의 파일이나 디렉토리가 있을 경우 질문함 | |
-r, -R | --recursive | 하위 디렉토리를 포함하여 모든 내용을 삭제 |
-d | --dir | 빈 디렉토리들만 제거 |
-v | --verbose | 지워지는 파일의 정보를 출력 |
--help | rm 명령어 사용법을 출력 | |
--version | rm 명령어의 버전 정보를 출력 |
반응형
'Programming > Git' 카테고리의 다른 글
[Git] CRLF, .gitattributes, 새로운 branch 가져오기, 원격 branch 삭제 (0) | 2020.06.05 |
---|---|
[Git] Please commit your changes or stash them before you merge. 해결방법 (0) | 2020.04.18 |
[Git] 로컬 폴더를 원격 저장소와 연결하기 (0) | 2020.03.04 |
[Git] 깃허브 마크다운 문법 (0) | 2020.01.24 |
[Github] 1. Git 기초개념 (0) | 2020.01.05 |
[Github] 소스트리(SourceTree)로 깃허브 사용하기 (2) | 2020.01.04 |