二度と使用しないファイルを削除し、ストレージを解放して github lfs クォータに戻す方法は?
この状況で git history のファイルの参照ポイントを削除すると機能しますか?
クリスの答えは正確ではありません。0xcaff からのコメント (「これはひどい解決策です」) と組み合わせると、経験の浅いユーザー (または注意散漫な読者) を誤解させる可能性があります。
正解はウェーダーとクリスのミックスです。
かつてLFSを使用していたが、大きなファイルから履歴が削除されていないリポジトリ( と呼びましょうREPO-1
)をミラーリングしたいというケースを解決しました。
先月のある時点で、
REPO-1
withでの LFS のサポートを削除しましたgit lfs uninstall
。そして、それはその後git clone
の s で正常に機能していました (つまり、もう機能しgit-lfs
ません)。しかし、今日pull
、以前push --mirror
のバージョンを試してみると、REPO-1
メッセージが表示されましたSmudge error: Error downloading <big-filename> ... Object does not exist on the server: [404] Object does not exist on the server
したがって、LFS と一度追跡されたファイルへの参照を取り除きたい場合は、次の手順を実行する必要があります。
LFS のアンインストールは、 git lfs uninstallのような単純なコマンドで実行できます。
リポジトリの履歴を消去するのは少し怖いですが、Github ドキュメントのgit filter-branch
項目3 -- https://help.github.com/en/articles/removing-sensitive-data-from-a-repository --で問題なく動作します。 - 十分なはずです:
$ git filter-branch --force --index-filter \
"git rm --cached --ignore-unmatch FILENAME-1 FILENAME-2 FILENAME-3" \
--prune-empty --tag-name-filter cat -- --all
リポジトリの削除と再作成は見た目ほど破壊的ではありません。ローカル リポジトリは、Github にあるものの完全に独立した自己維持型のクローンであることを思い出してください。ローカル (クリーン) バージョンを新しい空のリポジトリにプッシュすると、その (削除/作成) は起こらなかったようになります。