2011-11-13 39 views
5

我推送我的本地存儲庫到GitHub。在提交我的代碼的過程中,我忘了創建一個.gitignore文件。因此,我已經提交併隨後推送了一些我不想在GitHub上(或者在我的本地存儲庫中)的文件夾和文件。以後如何申請gitignore?

我現在可以如何申請.gitignore,以便我可以刪除一些不受歡迎的文件夾和文件?

回答

6

可以git rm <unnecessary file and folder names>然後將它們添加到您的.gitignore文件,該文件會從提交前刪除它們。問題在於,除非您更改早期提交,否則它們將保留在歷史記錄中。如果這些文件中沒有敏感數據,我會說現在就保留歷史記錄。如果您需要從存儲庫歷史記錄中刪除敏感數據,請參閱GitHub's help article on the subject

2

如果這是你的私人回購和你沒有它尚未公佈,使用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這是最好的做法,不要重寫它。只是刪除bin目錄,並添加.gitignore文件以

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- *'。只要確定,你明白歷史重寫的含義,如果你走「過濾分支」路線! – knittl