386

現在、私は持っています

  1. 空の GitHub リポジトリ
  2. SSH サーバー リポジトリ (メイン)
  3. ローカルレポ

SSH サーバー リポジトリは最新のリポジトリ (本番サイト) だったので、そこからローカルに Git クローンを作成しました。git push次に、 GitHub にアクセスしようとしました。

すべてがうまくいきましたが、filename.gz が GitHub には大きすぎるとのことでした。このファイルは必要なかったので、いくつかの Git コマンドを実行して Git キャッシュからファイルを削除し、SSH サーバーにプッシュしました。

git diff大きなファイルはローカルには表示されませんが、何も返されず、git push が「すべてが最新です」と返されても、まだ SSH サーバー上にあります。 GitHub まだエラーが発生します

リモート: エラー: ファイル fpss.tar.gz は 135.17 MB です。これは GitHub のファイル サイズ制限である 100 MB を超えています

GitHub ヘルプにリストされている「問題を解決する」の手順に従ったので、それで十分ではないでしょうか?

ファイルがローカルではない場合、または git status/diff/push にリストされていない場合、ファイルはまだイーサ内にあるのでしょうか?

4

20 に答える 20

4

私は同じ問題を抱えていて、どの答えも私にとってはうまくいきません。次の手順で解決しました。

1.大きなファイルを含むコミットを見つける

git log --all -- 'large_file`

一番下のコミットは、結果リストで最も古いコミットです。

2. 最も古いものの直前のものを見つけます。

git log

あなたが得たとします:

commit 3f7dd04a6e6dbdf1fff92df1f6344a06119d5d32

3.Git リベース

git rebase -i 3f7dd04a6e6dbdf1fff92df1f6344a06119d5d32

ヒント:

  1. リスト項目
  2. drop大きなファイルを含むコミットを選択するだけです。
  3. リベース中に競合が発生する可能性があります。それらを修正し、git rebase --continue完了するまで続行してください。
  4. リベース中に何か問題が発生した場合はgit rebase --abort、それをキャンセルするために使用します。
于 2017-10-14T16:13:55.903 に答える
0

ファイルが追跡履歴に保持される場合があります。次の手順を試してください。

  1. git commit、大きなファイルがリストされている作成モードが表示されている場合は、次のようにします。
  2. git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch filename' HEAD. コンソールに表示される一連の書き換えが次のように表示されるはずです。

    rm 'ファイル名' および

    最後の行Refが書き直されました。

終わった。

于 2020-06-08T16:14:07.970 に答える