我经常忘记添加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