개발관련/Git

.gitignore에 추가 한 후 원격 저장소에서 디렉토리 제거

Rateye 2021. 11. 22. 10:44
728x90
반응형
질문 : .gitignore에 추가 한 후 원격 저장소에서 디렉토리 제거

나는 일부 디렉토리를 github에 커밋하고 푸시했습니다. 그 후 무시해야 할 디렉토리를 추가 .gitignore 모든 것이 잘 작동하지만 (이제 무시 된) 디렉토리는 github에 남아 있습니다.

github 및 저장소 기록에서 해당 디렉토리를 어떻게 삭제합니까?

답변

.gitignore 파일의 규칙은 추적되지 않는 파일에만 적용됩니다. 해당 디렉터리에있는 파일이 이미 저장소에 커밋되었으므로 해당 파일을 언 스테이징하고 커밋을 만든 다음 GitHub에 푸시해야합니다.

git rm -r --cached some-directory
git commit -m 'Remove the now ignored directory "some-directory"'
git push origin master

리포지토리 기록을 다시 작성하지 않고 기록에서 파일을 삭제할 수 없습니다. 다른 사람이 리포지토리로 작업 중이거나 여러 컴퓨터에서 사용중인 경우이 작업을 수행하면 안됩니다. 그래도 그렇게하고 싶다면 git filter-branch 를 사용하여 기록을 다시 작성할 수 있습니다. 여기에 유용한 가이드가 있습니다.

git rm -r --cached some-directory 의 출력은 다음과 같습니다.

rm 'some-directory/product/cache/1/small_image/130x130/small_image.jpg'
rm 'some-directory/product/cache/1/small_image/135x/small_image.jpg'
rm 'some-directory/.htaccess'
rm 'some-directory/logo.jpg'

rm 은 저장소에 대한 git의 피드백입니다. 파일은 여전히 작업 디렉토리에 있습니다.

출처 : https://stackoverflow.com/questions/7927230/remove-directory-from-remote-repository-after-adding-them-to-gitignore
728x90
반응형