[英]git push not showing on github and still lfs error
我最近在本地創建了一個新目錄,並使用不同的源代碼控制將我從另一個項目中所做的所有更改復制到了這個新目錄中。
在我做的新目錄中
git remote add origin git@github.com/user/repo.git //ssh url to my empty Github Repo
之后,我做了git status
然后 git add all 和 git commit。 最后我做了git push
,我一直收到一個錯誤,說大文件無法推送到 Github。 為此,我做了git lfs install
和git lfs track "*.[filename]"
但這似乎沒有用,所以我只是從我的新目錄中刪除了它。 刪除后,我再次做了git status
並提交了這些文件的刪除。 但是,當我推送時,我仍然會收到有關大文件的錯誤並檢查lfs
工具。 當我 go 進入我的新目錄時,抱怨的大文件 git 不再存在。
您可以嘗試在首次提交大文件之前將 repo 重置為:
git reset HEAD~2 --soft
然后把事情整理好, commit
,然后再次push
。
另一種方法是使用filter-branch
,根據 git 手冊頁:
假設您想從所有提交中刪除一個文件(包含機密信息或侵犯版權):
git filter-branch --tree-filter 'rm filename' HEAD
發生這種情況的原因是,即使您現在已經刪除了這些文件,它們仍然是第一次提交的一部分。 Git 想要保留存儲庫的完整歷史記錄(嘿,這是您想要使用它的原因之一,對嗎?),因此它將這些文件作為提交歷史記錄的一部分。
刪除后,我再次做了 git status 並提交了這些文件的刪除。 但是,當我推送時,我仍然會收到有關大文件的錯誤並檢查 lfs 工具。 當我 go 進入我的新目錄時,抱怨的大文件 git 不再存在。
我假設您的意思是您對大文件執行了git rm
。 這將從當前工作目錄中刪除文件,並且在您git commit
后添加一個提交,顯示文件已被刪除。 但是,您添加大文件的提交仍保留在 git 存儲庫的歷史記錄中。 這意味着當你git push
時,它仍然會嘗試推送添加大文件的提交。
如果您最近添加了大文件,您可以在添加之前使用git reset
將當前分支重置為提交。 請注意,這將刪除自該提交以來的所有更改。 如果您有其他想要保留的更改,則需要使用git filter-branch
或第 3 方工具。 如何從 Git 存儲庫中的提交歷史記錄中刪除/刪除大文件? 對如何執行此操作有很好的描述。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.