(仮)IT技術関連中心の備忘録この広告は、90日以上更新していないブログに表示しています。2014-10-03GitHubの各種サイズ上限とファイル削除の方法GitHubはかなり大きなファイルやプロジェクトも受け付けますが上限はあります。filesまとめると次の通りです。リポジトリサイズには物理的な上限は設定していないただし1GB以下に収めるようにという要請(お願い?)があるそれを超えると注意(要請)メールが送られる場合ありその中の単一ファイルには100MBまでという物理的上限がある50Mを超えるファイルがあると警告を出す100Mを超えるファイルは受け付けないGitHubリポジトリサイズの確認方法この「リポジトリサイズ」はローカルリポジトリのディスク消費量ではなく、たぶんGitHub側が実際に使用しているリソース消費量のことです。GitHub内部の話なので詳細は分かりませんが、この解釈が一番自然だと思います。APIを使って取得できます。方法は簡単で、次のURLにアクセスすればリポジトリ情報を取得できます(ブラウザを使うのが一番簡単です)。https://api.github.com/repos/ユーザ名/リポジトリ名リポジトリ情報はJSON形式で返されます。リソース使用量は"size"プロパティで、単位はkbyteです。1024)を超えたら要対策ということになります。総サイズが1Gを超えても注意メールが来るのは少し先の事でしょう。私は今まで何回か1Gを超えた事がありますが、割と早く気付いて削減対応したところ何も来ませんでした。gitからファイルを完全消去するにはgitのリポジトリ履歴からファイルを完全に削除しなければならない状況が時々発生します。GitHubを利用している場合でいくつか例を上げてみます。サイズが1Gを超えた(かなりの猶予期間があるはず、落ち着いて対応すればOK)単一ファイルが100Mを超えた(これは厳密に拒否されてしまう)パスワードや恥ずかしい写真(?)を間違えて一緒にコミットした(すぐ抹殺せねば...)無理せず作り直すのが簡単もしそのリポジトリを自分ひとりで管理しており、作り直してもどこからも文句が来ないのであればそれが一番簡単です。GitHub側のリポジトリは削除して同じ名前で作り直してもいいですが、それよりpush時に--forceを指定すればリモート側の履歴を無視して強制的に送信・書き換えができます(作り直しの場合は--forceを指定しないとエラーになります)。--allGitHub側は削除して作り直すとそれまでの履歴は全て消去されますが、この方法では過去にいつ何回commitしたという記録は残り、ユーザページのContributionに表示されます。大事なリポジトリなので今までの履歴は残しておきたい(またはそうしないと他人に迷惑がかかる)場合の救済手段は次に書かれています。filter-branchコマンドを使った9ステップの方法があります。間違えてもやり直しの効かない危険作業だということを忘れずに。cloneしてから作業して下さい。filter-branchを使います。--all各オプションの意味は次の通りです。該当範囲を全ブランチとtagに設定メインテナンス用特殊コマンドなのでかなり複雑です。詳しくはリファレンスを参照してください(でも正直言って私はほとんど読んでません...)。http://git-scm.com/docs/git-filter-branch結果をよーく確認して、OKならremote側の履歴から消すために強制全pushします。--allリリースタグを使っている場合はもうひとつ次も必要です。私にはこの経験はありませんので文献だけ示しておきます。http://git-scm.com/book/ja/Git-%E3%81%AE%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E6%A9%9F%E8%83%BD-%E3%83%AA%E3%83%99%E3%83%BC%E3%82%B9削除してもすぐには反映されない実は削除しても実際の更新作業は即時には行われません。gitはそれ自体が高度なファイルシステムで、操作手順は一時的にキャッシュされ後でバックグラウンドジョブが処理しています。そんなに深く理解する必要はないと思います。http://git-scm.com/book/ja/Git%E3%81%AE%E5%86%85%E5%81%B4-%E3%83%91%E3%83%83%E3%82%AF%E3%83%95%E3%82%A1%E3%82%A4%E3%83%ABローカルリポジトリに関しては次のコマンドでバックグラウンドジョブを強制実行して完全消去する手段があります。--prune=nowでもこちらからコマンドを送ってGitHub側にこれを行わせる方法はどうもないようです。すればGitHubが処理してくれるはずです。私は実際にこの削除作業を行ったことがありますが、APIが返すsizeは数日間変わりませんでした。こればかりはGitHubを信じて待つしかないようです。WHR-G301N)のトラブルシューティング天気データマップ復旧しました月別アーカイブ参加グループプログラミングはてなブログをはじめよう!hugumaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。