git - Git推送被忽略的文件
问题描述
我在本地的 yii2 框架中建立了一个在线项目,并开始使用 Git 维护代码。几天后,我决定忽略一些文件和文件夹,例如“供应商、运行时和上传”文件夹。我现在有 3-5 个 git 分支。我还在 Github 网站上创建了一个存储库,用于在线保存我的更改。但是,所有被忽略的文件和目录都被推送到 GitHub。总目录大小(不包括.git
目录)约为 632MB。'.git' 目录本身是 1.3 GB。
我不想推送被忽略的文件和目录。
我使用以下命令从 Git 中删除已添加的文件和文件夹。
git rm --cached <file>
git commit -m "to save the changes"
但是当我将文件推送到服务器时,它仍然会推送暂存和忽略的文件和目录。
我想从我的所有 Git 分支中永久忽略我在“.gitignore”文件中添加的文件和目录,并且还想在 Git 中推送其余文件。这是我的 Git 忽略文件的副本。每次我使用以下命令时,它也会添加被忽略的文件。
git add --all *
Git忽略文件:
# windows thumbnail cache
Thumbs.db
# composer itself is not needed
composer.phar
# composer vendor dir
/protected/vendor
# runtime dir
/protected/frontend/runtime/
/protected/backend/runtime/
#tempfiles
*~
/assets/**
/uploads/*
*.log
@Drubio 这是目录结构:
/assests
/uploads
/protected
/backend
/runtime
/<rest all the directory by default installed with yii2
/common
/frontend
/runtime
/<rest all the directory by default installed with yii2
/vendor
/console
/environment
/.git
<few files here on root>
.gitignore
.htaccess
请帮忙。
谢谢
解决方案
使用删除不需要git rm
的文件将从您删除它们的提交中的文件树中删除这些文件,但它不会使 Git 存储库更小,因为 Git 保留所有旧提交的历史记录仍在存储库中,因此它们包含的所有文件。
我不想讨论如何重写历史记录以删除那些大文件 - 在这里详细讨论:如何从 Git 存储库中的提交历史记录中删除/删除大文件?但是如果你刚开始在这个项目中使用 Git,那么从一个新的 repo 开始可能是最简单的。
推荐阅读
- java - Spring Boot 外部 Tomcat 和外部 application.properties
- c# - 具有最初无效字段的结构
- c# - 在程序重新启动之前不会发生数据刷新
- java - Spring Boot:禁用状态异常代码的安全性
- java - Swagger 2.0 (Open Api 3.0) 和 Play Framework 2.6 (Java)
- javascript - Laravel 和 VueJS,访问 Vue 实例。
- vb.net - Visual Basic:老虎机值都返回相同的值
- azure - 无法连接 Azure Redis 缓存
- spring - Spring Boot 和 Thymeleaf 在发布请求时保持在同一页面上
- sapui5 - OPA5-Tests 不适用于一个标签的多重绑定