2011-11-13 5 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

これはあなたの秘密レポであり、あなたはまだそれを公開していない場合は、歴史を編集するfilter-branchを使用します。

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

その後、ADD /あなた.gitignoreファイルを編集:

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

すでにあなたのhそれを書き直さないことがベストプラクティスです。ただ、

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

関連する問題