【问题标题】:Cannot remove git repository completely无法完全删除 git 存储库
【发布时间】:2011-01-23 22:51:39
【问题描述】:

我一直在 windows-msysgit 上使用 git。每当我尝试使用资源管理器或使用

完全删除存储库时
$ git rm -rf ptp/
fatal: Not a git repository (or any of the parent directories): .git

它报错“重解析点缓冲区中存在的数据无效”或上面的致命错误。

我/git怎么了?

提前致谢

【问题讨论】:

  • windows重启有帮助吗? :)
  • 不!它仍然存在。我只能重命名父文件夹,但不能删除大小为 0 字节的文件 ta05636。这是微软针对 Git 采取的措施吗? :)
  • 在安全模式下加载 Windows 并擦除肯定会“解决”这个问题。正常启动中的某些进程正在访问该文件,而 Windows 不允许您删除它。使用安全模式,您将基本上限制启动哪些进程,从而允许您将其删除。如果进程仍然在安全模式下启动,您可能必须使用 linux LIVE 光盘启动计算机(选择您的风格)并以这种方式删除它...
  • Knoppix 是一个不错的选择。 knoppix.net
  • Live Mint 也是一个不错的选择! linuxmint.com/edition.php?id=65

标签: windows git git-remote


【解决方案1】:

此解决方案应该可以在不安装任何新程序的情况下删除任何锁定的文件和文件夹:

  1. 转到您的资源监视器(在任务管理器中)
  2. 转到CPU标签
  3. 在“关联句柄”中搜索您的文件
  4. 现在您将看到哪些进程正在锁定您的文件(可能是 explorer.exe)
  5. 关闭这些进程(小心,这可能会删除未保存的工作)
  6. 删除您之前锁定的文件,现在应该可以正常使用了。
  7. 可选:再次启动进程(对于 explorer.exe:转到任务管理器,文件 → 新任务 → 输入“explorer.exe”)

【讨论】:

    【解决方案2】:

    我也刚刚在 windows 10 上遇到了这个奇怪的问题:一个空的 .git 文件夹根本不会删除,并且重新启动 windows 并没有解决它,rmdir .git 也没有,rm -rf .git 也没有。

    与另一个建议类似,我在 windows (https://tutorials.ubuntu.com/tutorial/tutorial-ubuntu-on-windows#0) 上使用了 ubuntu(而不是 cygwin)并发出了 rm -rf .git,效果很好

    【讨论】:

      【解决方案3】:

      在 Windows 10 上,尝试以管理员身份运行 cygwin 控制台并 rm -rf 目录。

      【讨论】:

        【解决方案4】:

        我有第三个分区,在 Windows 7 和 Fedora Linux 的双重引导下,我意识到我在终端的 vim 中打开了一个文件,这导致 .fuse_hidden... 文件无法删除。

        当我在 vim 中关闭文件时,我能够删除 .git 目录。

        【讨论】:

          【解决方案5】:

          当我想在 Windows 上删除 GIT 存储库时...我非常简单地删除(或移动)存储库所在的 .git 目录...我直接从资源管理器中执行此操作...它并没有让我失望还没!

          【讨论】:

            【解决方案6】:

            我试图通过 Windows/配置/软件菜单在我的 windows-XP 上删除 GIT。在一些错误消息(我不记得)之后,它删除了所有文件。我查了一下,整个系统上没有留下名字中带有ptp的文件。

            但问题仍然存在:每次我打开 windows-explorer 时,都会出现一条令人讨厌的错误消息,要求一个不再存在的 dll 文件。

            在检查注册表时,注册表中留下了许多 GIT 痕迹。我用手小心地取下它们,似乎已经解决了问题。这当然是一条危险的道路,但我别无选择。仔细查看 Windows 卸载脚本也许是个好主意。

            史蒂芬·约斯顿

            【讨论】:

              【解决方案7】:

              要摆脱 Windows 上的 git 存储库,请执行以下操作:

              Win+R,输入cmd,回车。

              > cd c:/path/to/parent/of/ptp-repo
              > rmdir /S /Q ptp
              

              或者如果它失败了然后检查who locks the directory并从探索中手动删除它。

              很可能某个进程会锁定您的存储库中的文件/目录。

              【讨论】:

              • 这是结果 :( D:\Projects\ptp>rmdir /S /Q ptp ptp\GIT~1\ta05636 - 重解析点缓冲区中存在的数据无效。我试过 WhoLockMe 但当我使用Win7时它崩溃了。还有其他方法可以发现“储物柜”吗?
              • 我用过解锁器。它说文件夹上没有锁定处理程序:s 即使我选择了“下次重新启动时删除”选项,它也没有删除文件。
              • Explorer 不会显示 .git 文件夹并且 rmdir 说它是不允许的,因为该文件夹不是空的...
              【解决方案8】:

              要删除 git repo,只需执行rm -rf ptp/。而已。 git rm 用于从索引中移动项目[更改/新文件的暂存区],而不是删除 git 存储库。

              【讨论】:

              • +1,但要注意—— git rm 将从您的工作目录中删除文件,前提是它们也从索引中删除,并且没有未暂存或暂存的更改。幸运的是,在这些情况下,您始终可以从版本历史记录中取回它们。
              • 不可能! $ rm -rf ptp/ rm: 无法删除目录ptp/.git': Directory not empty rm: cannot remove directory ptp': 目录不是空的 得到了: hoppala@HOPPALANINYERI /d/Projects/ptp/ptp/.git $ ls ta05636 hoppala@HOPPALANINYERI /d/Projects/ptp /ptp/.git $ rm -rf ta05636 hoppala@HOPPALANINYERI /d/Projects/ptp/ptp/.git $ ls ta05636
              • 这绝对是奇怪的。这可能更多地与 Windows 上的某些问题有关,而不是与 git 本身有关。
              • 对。我认为Win7是罪魁祸首。
              • 这很可能是权限问题或锁定目录的进程。在 MacOSX 上遇到了同样的问题
              猜你喜欢
              • 2015-04-19
              • 2011-03-28
              • 2013-05-28
              • 2015-11-05
              • 1970-01-01
              • 2010-11-15
              • 1970-01-01
              • 2016-01-22
              相关资源
              最近更新 更多