github
機密データや大きなファイルを削除する
サーチ…
前書き
備考
あなたの古い(汚染された)リポジトリ履歴から作成したブランチは、共同作業者にリベースして、マージしないように伝えてください。 1つのマージコミットは、汚染された履歴の一部または全部を再導入し、パージの手間をかけたばかりです。
しばらくしてgit filter-branchに意図しない副作用がないと確信していれば、次のコマンド(Git 1.8.5以降を使用)を使って、ローカルリポジトリのすべてのオブジェクトの参照を解除し、ガベージコレクションを強制できます。
git for-each-ref --format = '%(refname)を削除する' refs / original | git update-ref --stdin
git reflog expire --expire = now --all
git gc --prune = now
filter-branchを使用する
git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA' \
--prune-empty --tag-name-filter cat -- --all
重要なデータを含むファイルを.gitignoreに追加して、間違って再度コミットしないようにします。
echo "YOUR-FILE-WITH-SENSITIVE-DATA" >> .gitignore
git add .gitignore
git commit -m "Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore"
ローカルリポジトリをGitHubにプッシュする
git push origin --force --all
あなたのタグ付きリリースから機密ファイルを削除するには、Gitタグを強制的に押す必要があります:
git push origin --force --tags
BFGレポクリーナーの使用
BFG Repo Cleanerは、git filter-branchの代わりです。これは、ソースからコンパイルされたバイナリのように間違ってコミットされた機密データや大きなファイルを削除するために使用できます。これはScalaで書かれています。
プロジェクトのウェブサイト: BFG Repo Cleaner
要件
Java Runtime Environment(Java 7以上 - BFG v1.12.3はJava 6をサポートする最後のバージョン) Scalaライブラリと他のすべての依存関係は、ダウンロード可能なjarファイルに折りたたまれています。
機密データを含むファイルを削除する
bfg --delete-files YOUR-FILE-WITH-SENSITIVE-DATA