2

問題

誤ってデータセットをコミットに追加してしまいました。コミットをプッシュすると、標準のファイル サイズ エラーが発生しました (データセット ファイルは 100MB を超えています)。を使用して以前のコミットを元に戻し、git revertipython ノートブックといくつかの画像ファイルのみを追加しました。

コミットをプッシュすると、データセット ファイルもプッシュするのに疲れます。

を使用git diff --stat origin/masterして、プッシュするファイルが見つかりました:

agconti@agconti-Inspiron-5520:~/my_dev/github/US_Dolltar_Vehicle_Currency$ git diff --stat origin/master

 .ipynb_checkpoints/US_Dollar_Vehicle_Currency-checkpoint.ipynb | 1972 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 CountryNumbers_indexConti.xlsx                                 |  Bin 0 -> 22762 bytes
 Italian Trade/US_Dollar_Vehicle_Currency.ipynb                 | 1972 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 Italian Trade/images/3_year_exchange_rate_volitlity.png        |  Bin 0 -> 11808 bytes
 Italian Trade/images/Currency_usage_breakdown_top20.png        |  Bin 0 -> 404666 bytes
 Italian Trade/images/Currency_usage_observations_top20.png     |  Bin 0 -> 274964 bytes
 Italian Trade/images/Currency_usage_trade_value_top20.png      |  Bin 0 -> 211274 bytes
 Italian Trade/images/Exchange_rate_volitlity_top20.png         |  Bin 0 -> 345899 bytes
 Italian Trade/images/prop_xm_top20.png                         |  Bin 0 -> 258254 bytes
 Italian Trade/images/rate_derive_activity_top20.png            |  Bin 0 -> 214196 bytes
 README.md                                                      |    2 +-
 US_Dollar_Vehicle_Currency.ipynb                               |  809 --------------------------------
 images/3_year_exchange_rate_volitlity.png                      |  Bin 11808 -> 0 bytes
 images/Currency_usage_breakdown_top20.png                      |  Bin 404666 -> 0 bytes
 images/Currency_usage_observations_top20.png                   |  Bin 292532 -> 0 bytes
 images/Currency_usage_trade_value_top20.png                    |  Bin 224008 -> 0 bytes
 images/Exchange_rate_volitlity_top20.png                       |  Bin 361868 -> 0 bytes
 images/exporter_economic_strength_top20.png                    |  Bin 0 -> 166575 bytes
 images/exporter_trade_health_top20.png                         |  Bin 0 -> 277557 bytes
 images/prop_xm_top20.png                                       |  Bin 275777 -> 0 bytes
 images/rate_derive_activity_top20.png                          |  Bin 228728 -> 0 bytes
 libpeerconnection.log                                          |    0
 22 files changed, 3945 insertions(+), 810 deletions(-)

データセット ファイルはありません。それでも、彼らはまだプッシュされています。

git にデータセット ファイルのプッシュを停止させるにはどうすればよいですか?

エラーメッセージを見てみましょう:

Delta compression using up to 8 threads.
Compressing objects: 100% (27/27), done.
Writing objects: 100% (30/30), 279.15 MiB | 389 KiB/s, done.
Total 30 (delta 7), reused 3 (delta 0)
remote: Error code: c4fe7114933ad585dc5027c82caabdaa
remote: warning: Error GH413: Large files detected.
remote: warning: See http://git.io/iEPt8g for more information.
remote: error: File ForConti_AllItalianImportsVCP.raw is 987.19 MB; this exceeds GitHub's file size limit of 100 MB
remote: error: File italian_imports.csv is 1453.55 MB; this exceeds GitHub's file size limit of 100 MB
remote: error: File italian_imports_random_10percent.csv is 138.30 MB; this exceeds GitHub's file size limit of 100 MB
To https://github.com/agconti/US_Dollar_Vehicle_Currency
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://github.com/agconti/US_Dollar_Vehicle_Currency'

私が試したこと

git で何をプッシュしようとしているのかを確認するにはどうすればよいですか?

Git リポジトリを以前のコミットに戻すには?

4

3 に答える 3

6

を使用したためgit revert、これらのファイルは引き続きリポジトリで参照されます。これがあなたの基本的なシーケンスだったようです:

git add <a bunch of stuff including big files>
git commit                  # creates a commit including the unwanted files
# realize mistake
git revert HEAD             # this creates a new commit on top of the previous one,
                            # that simply undoes all the changes in the previous commit
# now trying to push

master悪いコミットと悪いコミットの復帰以降 (またはその間) に他のコミットがない場合(つまり、グラフは次のようになります (Z は最後の適切なコミットです):

 .....Z--A--A' <- master

次に、以下が役立ちます。

 git reset --hard Z

これにより、作業ディレクトリとインデックスとともに、masterブランチが にリセットされます。これは、不適切なコミットのように見え、復帰が起こらなかったことを意味します。Z

上記のポイントの後に他のコミットがある場合は、 を使用し、代わりにandに対応する 2 行を削除するA必要があります。git rebase -i ZAA'

A保持したい他の変更がある場合 (つまり、そこにコミットされた大きなファイルだけではない場合)、git rebase -iルートを使用し、 をマークAする必要がありますedit。これによりrebase、コミットが完了した時点で停止し、次のAことができます。

 git rm --cached <big files>                # remove the files from your index
 git commit --amend                         # fix up the last commit
 git rebase --continue                      # let rebase finish up the rest

上記のいずれかを実行したら、git push再び続行できるはずです...

于 2013-07-18T19:59:55.223 に答える
1

このrevertコマンドは、元に戻す操作を通常のコミットとして記録します。大きなファイルはまだ履歴にあります。おそらく、失敗したコミットと元に戻されたコミットの両方を履歴から完全に削除する必要があります。と

git rebase -i origin

エディターが開くはずです。コミットの失敗と復帰を示す行を削除するだけで、再び起動して実行できるようになります。対話型リベースの詳細については、Git ブックを参照してください。

于 2013-07-18T20:00:11.567 に答える