2011-11-13 1 views
5

로컬 저장소를 GitHub에 푸시했습니다. 코드를 작성하는 과정에서 .gitignore 파일을 만드는 것을 잊었습니다. 결과적으로 GitHub (또는 로컬 저장소)에서 원하지 않는 일부 폴더와 파일을 커밋하고 밀어 넣었습니다.나중에 gitignore를 적용하는 방법은 무엇입니까?

이제 불필요한 폴더와 파일을 제거 할 수 있도록 .gitignore을 어떻게 적용 할 수 있습니까?

답변

6

당신은 git rm <unnecessary file and folder names> 그 커밋 앞으로에서 제거 할, 당신의 .gitignore 파일에 추가 할 수 있습니다 bin 디렉토리를 제거하고 .gitignore 파일을 추가합니다. 문제는 이전 커밋을 변경하지 않는 한 그 기록에 남게된다는 것입니다. 이러한 파일에 중요한 데이터가 없으면 기록을 그대로 두십시오. 저장소 내역에서 중요한 데이터를 제거해야하는 경우 GitHub's help article on the subject

2

메모리에서 메모리를 제거하고 다시 추가해야합니다. 그러면 Git ignore가 적용됩니다.

Answered already?

2

이 개인의 repo이며 역사 편집 filter-branch를 사용, 아직 게시하지 않은 경우 :/추가, 그리고

git filter-branch --index-filter ' 
    git rm -r --cached --ignore-unmatched bin; 
' --all 

당신의 .gitignore 파일 편집 :

>> .gitignore echo bin 
git add .gitignore 
git commit -m 'add gitignore files' 

이미 h istory, 그것을 재 작성하지 않는 것이 가장 좋습니다. 그냥

git rm -r bin 
# add .gitignore 
git commit -m 'remove and ignore bin folder' 
+0

은 gitignore를 사용하여 모든 폴더/파일을 자동으로 삭제하는 접근 방식입니까? 삭제할 각 파일/폴더에 대해 실제로 명령을 실행해야합니까? – Rookian

+0

'git rm -r --cached --ignore-unmatched file1 folder1 file2 folder2 folder3 * bak test- *'를 간단히 수행 할 수 있습니다. 'filter-branch' 경로로 간다면, 역사 재 작성의 함의를 이해할 수 있습니다! – knittl