-1

誤って、無視されるべきファイル(node_modulesおよびbowerコンポーネントディレクトリ)を含むコミットをプッシュしました。多くの依存関係を使用していたため、コミットがかなり大きくなり、多くのデータがアップロードされました。

これらのファイルを別のコミットで削除してファイルを含めましたが.gitignore、アプリのクローンを作成するたびに、これらの大きなファイルはすべてプロジェクトの履歴としてダウンロードされます。

それを取り除く方法はありますか?gitリポジトリからnode_modulesbowercomponentsディレクトリを確実に削除する方法はありますか?

4

3 に答える 3

1

gitの履歴を書き換えて、このオブジェクトをgitから削除できます。次のリンクを見てくださいhttps://git-scm.com/book/en/v2/Git-Tools-Rewriting-History

于 2013-01-10T23:12:05.470 に答える
0

Even if you perform a git rm, the files will continue in the project history. That way, you will have to download them when you clone the repository. To remove the files forever, you need to change the history.

If the commit that added the files are very recent, you can perform a git resetto a commit before the commit that added the files. But, if the files were added some time ago, you need to use git filter branch. I will show some steps that I use when I want to delete big files from the repository.

git filter-branch --index-filter 'git rm --cached --ignore-unmatch file-or-directory-that-you-want-to-remove-with-complete-path' --all.

Then, you need to perform a git push -f because you changed the project history. This way, when you clone the project again, the files that were removed will not be downloaded anymore.

于 2013-01-11T02:30:53.400 に答える
0

私は言うだろう

git commit --amend

また

git commit --rebase

しかし、削除したいファイルがかなり長い間そこにあった場合:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch filename' HEAD
于 2013-01-10T23:17:32.297 に答える