亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

由于我已經刪除了大文件而無法將其推送到GitHub

由于我已經刪除了大文件而無法將其推送到GitHub

Git
一只斗牛犬 2019-11-05 10:41:04
目前我有空GitHub回購SSH服務器存儲庫(主)本地回購SSH服務器存儲庫是最新的存儲庫(生產站點),因此我從那里到本地進行了Git克隆。然后,我嘗試git push對GitHub 做一個。一切正常,但隨后又說到filename.gz對于GitHub太大了。我不需要此文件,所以我運行了幾個Git命令從Git緩存中刪除它,然后將其推回SSH服務器。我沒有在本地看到大文件,但是即使git diff什么都沒有返回并且git push返回“一切都是最新的”,它仍然在SSH服務器上-而且即使在我嘗試推送到本地文件時該文件不可見GitHub我仍然有關于它的錯誤遠程:錯誤:文件fpss.tar.gz為135.17 MB; 這超出了GitHub的文件大小限制100 MB我按照GitHub幫助中列出的 “解決問題”下的步驟進行操作,所以這還不夠嗎?當文件不在本地或不在git status / diff / push中列出時,文件仍如何在ether中?
查看完整描述

3 回答

?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

我發現壁球比壁球更有用filter-branch。我做了以下工作:

  1. 在本地刪除大文件。

  2. 提交本地刪除。

  3. 提交軟重置X號(對我來說是3) git reset --soft HEAD~3

  4. 然后重新提交所有更改(又稱壁球) git commit -m "New message for the combined commit"

  5. 推送壓縮的提交。

特殊情況(來自用戶@lituo):如果上述方法不起作用,則可能是這種情況。提交1包含大文件,提交1的推送由于大文件錯誤而失敗。提交2刪除了大文件,git rm --cached [file_name]但提交2的推送仍然失敗。您可以按照相同的步驟,只是使用替代以上HEAD~3,使用HEAD~2。


查看完整回答
反對 回復 2019-11-05
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

如果文件是使用最新提交添加的,而您尚未推送到GitHub,則可以刪除文件并修改提交,取自此處:


git rm --cached giant_file

    # Stage our giant file for removal, but leave it on disk

git commit --amend -CHEAD

    # Amend the previous commit with your change

    # Simply making a new commit won't work, as you need

    # to remove the file from the unpushed history as well

git push

    # Push our rewritten, smaller commit


查看完整回答
反對 回復 2019-11-05
?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

您可以使用


git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch <file/dir>' HEAD

這將刪除該文件歷史記錄中的所有內容。問題在于該文件存在于歷史記錄中。


該命令更改提交的哈希值,這可能是一個真正的問題,尤其是在共享存儲庫上。在不了解后果的情況下不應執行此操作。


查看完整回答
反對 回復 2019-11-05
  • 3 回答
  • 0 關注
  • 642 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號