首页 > 解决方案 > 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

请帮忙。

谢谢

标签: gitgitignore

解决方案


使用删除不需要git rm的文件将从您删除它们的提交中的文件树中删除这些文件,但它不会使 Git 存储库更小,因为 Git 保留所有旧提交的历史记录仍在存储库中,因此它们包含的所有文件。

我不想讨论如何重写历史记录以删除那些大文件 - 在这里详细讨论:如何从 Git 存储库中的提交历史记录中删除/删除大文件?但是如果你刚开始在这个项目中使用 Git,那么从一个新的 repo 开始可能是最简单的。


推荐阅读