我經常忘記添加node_modules
或components
到.gitignore
,它們在我的git commit中結束並推送到github(它需要永久上傳)。無論如何,從每次提交中刪除這些文件夾的所有實例,並將其保留在工作目錄中?如何從所有git提交中刪除文件夾,但保留它在工作目錄
回答
簡單的方法來從當前版本中刪除:
使用git -rm -r --cached
的--cached選項將保持在本地工作目錄中的文件或目錄,並從混帳刪除它。
從git help rm
:
--cached
Use this option to unstage and remove paths only from the index.
Working tree files, whether modified or not, will be left alone.
見https://www.kernel.org/pub/software/scm/git/docs/git-rm.html
從所有版本中刪除:
如果你真的需要刪除的文件/從所有修訂的目錄,看看這個線程和專用於此的git幫助頁面。
這不會刪除所有修訂中的文件夾。 – jszakmeister 2013-04-06 23:34:47
@jszakmeister好點,我已經更新了我的答案 – jszobody 2013-04-06 23:39:37
二者必選其一git -rm -r --cached
像jszobody建議,或做git reset HEAD
這是一個有點少打字和git status
建議從刪除文件的方式提交(前實際調用git commit
)。這就是所謂的暫停。
但是,git commit
之後沒有簡單的方法來刪除這些文件夾。如果上次提交的提交更改不想保留,請將本地副本修改爲您希望的狀態,請運行git add .
並執行git commit --amend
。如果不必要的更改是在進一步提交或多次提交中提交的,則必須通過git rebase -i
進行重定位。我建議你閱讀關於它的手冊頁或尋找一些教程。
如果您已將更改推送至github,則必須在您的rebase或修改後運行git push -f
。如果你在團隊中工作,重新推遲提交的提交是一個壞主意,因爲它會給你的提交不同於你的團隊其他成員的提交。
- 1. 刪除目錄中的所有文件,但保留目錄?
- 2. Unix命令刪除目錄中的所有文件,但保留目錄
- 3. 從以前的所有git提交中刪除.idea目錄
- 4. 刪除所有文件和文件夾,但排除目錄
- 5. 如何刪除Git倉庫中不在工作目錄中的所有文件?
- 6. 刪除所有Git提交記錄
- 7. 刪除提交,但保留更改
- 8. 如何從GIT中刪除目錄後提交
- 9. git撤消刪除但保留新作
- 10. 我刪除了所有的工作目錄文件,其中包括.git目錄,但我有github上的副本
- 11. Git的 - 保留工作,無需提交
- 12. 目標c:如何只刪除一個目錄下的所有文件,但保留目錄本身
- 13. Git從工作目錄中刪除手動創建的文件
- 14. 刪除所有文件,但將所有目錄保存在bash腳本中?
- 15. 在Git的安裝目錄中意外刪除.git文件夾
- 16. Git - 如何返回上次提交併刪除所有未提交的文件?
- 17. 刪除所有文件,但保留最新的文件
- 18. 在bash中刪除給定文件夾中的所有目錄
- 19. 將所有未記錄的文件刪除到Git目錄中?
- 20. 如何刪除文件夾的內容但保留該文件夾?
- 21. 如何在Git中分離子目錄但保留所有分支
- 22. 刪除多個目錄中的所有文件和文件夾,但離開directoy
- 23. Git/Bitbucket - 從整個歷史記錄中刪除文件/提交
- 24. Git:從歷史記錄中刪除替換文件的提交
- 25. 腳本刪除目錄,但保留的文件
- 26. Git:從版本中刪除文件,但不刪除它
- 27. 如何在Git倉庫中爲所有提交移動目錄?
- 28. 如何從Git的早期提交中刪除一些文件?
- 29. 如何從git repo中刪除以前提交的文件?
- 30. 如何從推Git提交中刪除文件
還沒有嘗試過,但我必須做到多個回購,當我做我會接受。 – ThomasReggi 2013-04-10 15:11:35