git - 从 git 存储库中删除工作文件以节省空间

标签 git file diskspace

我的磁盘上有许多 GitHub 项目,但其中许多项目并未得到有效使用。

我想暂时删除工作文件,因为它们无论如何都存储在提交历史记录中,因此我可以稍后检索它们。

删除文件的最简单方法是rm -rf *,但它有许多缺点:

  • 它不会删除 .gitignore 等点文件
  • 如果我稍后回来,git status 会提示大量已删除的文件。我必须弄清楚是否应该进行这些删除,或者只是删除它们以暂时节省空间。

删除工作文件的快速简便方法是什么?有没有办法干净利落地做到这一点?

最佳答案

创建一个空分支似乎效果很好:

  1. 检查您的所有文件是否已安全提交到分支(例如“master”或“develop”分支)。
  2. 创建一个空分支。我将其称为“空”。

    git checkout --orphan empty
    
  3. 但这并没有删除文件。手动执行此操作:

    git reset --hard
    
  4. 该分支尚未真正存在。进行初始提交以确认:

    git commit --allow-empty -m 'Empty commit'
    

现在您的所有文件都消失了,并且您所在的分支体现了这种情况。


这个过程的好处:

  • 它使用 git 自己的机制。没有令人困惑的脏状态。
  • 看到分支名称就清楚发生了什么。
  • 您可以使用 git checkout master 轻松切换回 master
  • 您可以使用 git checkoutempty 轻松切换回空分支

缺点:

  • 初始过程需要 3 个命令。
  • 如果您不熟悉分支,或者不知道自己所在的分支,当您返回文件夹时,您可能会想知道所有文件都去了哪里!

关于git - 从 git 存储库中删除工作文件以节省空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35355810/

相关文章:

Git > diff 过滤器,仅显示某些更改的类/文件

python - 从文件中获取 IP 地址并计算出现次数

android - android 教程中的 DiskLruCache 缺少很多方法。

kubernetes - 获取节点上的 Pod,按磁盘空间使用情况排序

git - 有没有办法从 GitHub 下载完整的历史记录?

git - 如何从上次提交中删除某些行并将它们添加到 git 中的新提交中?

c - 验证输入文件的内容

ios - 如何在 iOS 中搜索特定文本的文件名

java - 如何使用Java查找远程Linux机器的磁盘空间

git - 如何将 Selenium Grid 2 与 Hudson/Jenkins 集成?