【问题标题】:Git Remove Added Commits with Large FilesGit 删除添加的带有大文件的提交
【发布时间】:2021-12-22 22:03:35
【问题描述】:

我不小心在我的 git 提交中添加了一些大文件。在此之后,我删除了大文件,现在我想提交剩余的更改(不包括大文件),但不知何故,大文件的删除仍在我的 git 历史记录中,因此我无法进行任何进一步的提交。我不想 git reset HARD 或其他东西而丢失很多我的本地更改。我该如何解决这个问题?

我的步骤:

git add -A
git commit -m "Commiting with Large Files"
git push origin main
-- Failed to push due to Large files

现在我从本地机器中删除这些大文件并尝试再次推送

git add -A
git commit -m "Commiting with deleted large files"
git push origin main
-- Failed to push 

我试过了

git reset --soft HEAD~1
git reset

但我仍然将已删除的文件作为未暂存的更改,这阻止了新的 git add -A 和推送。

Unstaged changes after reset:
D   largefile/b_qty.tar.gz
D   largefile/b_qty.txt
D   largefile/s_qty.tar.gz
D   largefile/s_qty.txt 

关于如何解决此问题的任何建议?我真的不能丢失任何本地更改。

【问题讨论】:

    标签: git github version-control


    【解决方案1】:

    如果我理解得很好,你有以下提交:

    def - Commiting with deleted large files
    abc - Commiting with Large Files
    

    因此,当您撤消提交 def 时,git 仍将这些文件视为已删除是正常的:您仍然在添加这些文件的地方提交 abc

    如果您想更好地查看提交图,请尝试:

    git log --all --graph --oneline --decorate
    

    这将帮助您进行诊断。可能你应该重写你的两个提交,所以

    git reset HEAD~2
    

    可能会成功,但再次:分析您的 git 图表以查看您需要做什么,哪些提交要重置,...

    【讨论】:

      【解决方案2】:

      尝试使用 git restore --staged .

      要取消暂存文件或取消暂存特定文件,请使用

      git restore --staged <individual_file>

      【讨论】:

        猜你喜欢
        • 2017-09-18
        • 2020-07-18
        • 1970-01-01
        • 2018-09-15
        • 2017-11-27
        • 2012-09-10
        • 2012-08-11
        • 2020-01-09
        • 2018-06-16
        相关资源
        最近更新 更多