【问题标题】:Git still tracking a file that I already deletedGit 仍在跟踪我已经删除的文件
【发布时间】:2020-05-10 02:12:20
【问题描述】:

我正在处理一个超过 git 允许的最大文件大小的大文本文件,因此它不允许我将本地提交推送到远程。我已经尝试创建一个 .gitignore 文件并将文件的路径添加到其中,但我仍然遇到同样的问题。

我也试过了:

git rm -r --cached .
git add .
git commit -m "message"
git push

还有:

git update-index --assume-unchanged <path/to/file>

我什至删除了文件然后重新提交并推送:

git add .
git commit -m "message"
git push

但 git 仍然认为我正在尝试推送大文本文件。我对如何从 git 取消跟踪文件感到困惑。

【问题讨论】:

    标签: git github version-control push commit


    【解决方案1】:

    注意:git rm --cached 仅从索引中取消暂存,而不是从存储库中取消暂存。

    文本文件已在您的存储库中的先前提交中注册。即使您尝试使用新的提交来修改您的存储库,旧的仍然存在。无论如何,Git 都会尝试推送它。

    所以你需要编辑这个先前的提交并删除其中注册的文件。你必须重写提交的历史:git rebase -i specific-commit-id 将成为你的朋友。此时,您可以使用git rm --cached 删除此提交中的大文本文件。然后git commit更新。

    【讨论】:

    • 当我尝试使用 git rebase -i spefic-commit-id 修改最新提交时,我收到以下消息:错误:无法变基:您有未暂存的更改。错误:请提交或隐藏它们。我是否必须修改包含该特定文件的所有提交?
    • 你应该git stashgit commit他们;取决于你现在想要什么。使用git stash,它将保存您最后的修改,您可以使用git stash apply 取回它们。
    猜你喜欢
    • 1970-01-01
    • 2022-01-27
    • 2017-05-10
    • 2012-04-02
    • 1970-01-01
    • 2018-09-28
    • 2020-11-18
    • 2018-12-20
    • 2014-08-09
    相关资源
    最近更新 更多