2015-05-25 65 views
1

我從未遇到過這個問題,也不知道這是如何可能的。我有一個非常大的目錄,我錯誤地下載到了我的git repo中。我無意中做了一個git add .,所以大目錄被添加到工作樹中,當我嘗試提交時,它不允許我,因爲文件太大。 然後我沒有做git rm並直接從文件系統中刪除文件。下次我嘗試提交時,它不允許我,並且仍在抱怨該目錄(現在不再存在於文件系統中)太大。git刪除系統中不存在的文件

不從文件系統中刪除文件也從git工作樹中刪除它?

如果有一種方法可以撤銷我的最後2次提交而不會丟失更改,然後重新推送到遠程,那就太好了。

回答

1

您需要從索引中刪除它之前提交:

git rm --cached FOLDER_NAME 

既然你有它已經從文件系統中刪除,該文件夾應該已經消失了。

如果你已經在最近添加的文件夾提交,那麼你可以簡單的問題:

git commit --amend 
git push -f REMOTE BRANCH_NAME 

如果已經添加在倒數第二個提交的文件夾,事情變得稍微有點難度了。我建議首先創建本地回購的備份。

遵循以下步驟:

# Rebase the second most recent commits 
# -i will open an editor 
git rebase -i HEAD~2 

在編輯器中通過edit在符合第二替換pick最後一次提交併保存文件。您現在可以更改該提交。問題:

git rm FOLDER_NAME 

# This will open an editor again. You can leave the 
# commit message unchanged. Simply save the file 
git commit --amend 

# Finish the rebase action 
git rebase --continue 

現在您應該完成並且該文件夾從該通訊中刪除。您可以使用

git push REMOTE BRANCH_NAME 
+0

如何找到緩存的文件列表?我需要知道目錄的確切名稱。我現在不是這樣。 – anonuser0428

+1

你可以使用'git ls-files --cached' – hek2mgl

+0

它沒有在緩存文件中列出。我試圖再次推我的提交,但是當我做了我得到了以下錯誤: '遠程:錯誤:文件Path_to_dir/dir_name /文件名是200.96 MB;這超過了GitHub的文件大小限制100.00 MB' – anonuser0428

相關問題