无法完全删除git仓库

11

我一直在使用Windows-msysgit上的Git。每当我尝试完全删除一个存储库时,无论是使用资源管理器还是使用

$ git rm -rf ptp/
fatal: Not a git repository (or any of the parent directories): .git

当我使用git时,出现了一个错误信息 "The data present in the reparse point buffer is invalid" 或以上的致命错误。

请问这是怎么回事?谢谢。


重启Windows有用吗? :) - Dmytrii Nagirniak
不可以!它还在那里。我只能重命名父文件夹,但无法删除大小为0字节的文件ta05636。这是微软针对Git采取的措施吗? :) - Aleyna
在安全模式下加载Windows并擦除将肯定“修复”此问题。您正常启动中的某些进程正在访问该文件,而Windows不允许您删除它。使用安全模式,您将基本上限制启动的进程,从而允许您删除它。如果该进程仍在安全模式下启动,则可能需要使用Linux LIVE光盘(选择您喜欢的版本)引导计算机并以此方式删除它... - g19fanatic
Knoppix 是一个很好的选择。http://www.knoppix.net/ - g19fanatic
1
“Live Mint” 也是一个很好的选择!http://www.linuxmint.com/edition.php?id=65 - g19fanatic
9个回答

16
要删除一个git仓库,只需要执行rm -rf ptp/命令。就这样。 git rm 用于将项目从索引中移除[即修改/新文件的暂存区],而不是删除git仓库。

+1,但请注意--git rm 从您的工作目录中删除文件,前提是它们也从索引中删除,并且没有未暂存或已暂存的更改。幸运的是,在这些情况下,您始终可以从版本历史记录中找回它们。 - rjh
1
不可能! $ rm -rf ptp/ rm: 无法删除目录 ptp/.git': 目录非空 rm: 无法删除目录 ptp': 目录非空然后得到了这个: hoppala@HOPPALANINYERI /d/Projects/ptp/ptp/.git $ ls ta05636hoppala@HOPPALANINYERI /d/Projects/ptp/ptp/.git $ rm -rf ta05636hoppala@HOPPALANINYERI /d/Projects/ptp/ptp/.git $ ls ta05636 - Aleyna
1
这确实很奇怪。这可能更多地与Windows上的某些问题有关,而不是与git本身有关。 - rmk
1
没错,我认为Win7是罪魁祸首。 - Aleyna
这很可能是权限问题或进程锁定目录。我在MacOSX上也遇到了同样的问题。 - Gerold Meisinger

4

在Windows系统上删除git仓库,请按照以下步骤操作:

按下Win+R组合键,输入cmd后按回车键。

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

如果失败,请检查锁定该目录的进程,并通过资源管理器手动删除。

很可能有某个进程持有锁,锁定了仓库中的文件/目录。


这是结果:( D:\Projects\ptp>rmdir /S /Q ptp ptp\GIT~1\ta05636 - 重解析点缓冲区中的数据无效。我尝试了WhoLockMe,但它在我使用Win7时崩溃了。有没有其他方法可以发现“锁定者”? - Aleyna
我使用了Unlocker。它说文件夹上没有锁定处理程序:s 即使我选择了“下次重启时删除”选项,它也没有删除该文件。 - Aleyna
1
资源管理器无法显示.git文件夹,而rmdir则表示不允许删除该文件夹,因为它不为空... - Dastur

2
我尝试通过Windows/配置/软件菜单从我的Windows-XP系统中删除GIT。在一些错误提示(我记不清了)之后,它删除了所有文件。我进行了检查,并且整个系统中没有任何带有“ptp”名称的文件。
然而,一个问题仍然存在:每次打开Windows资源管理器时,都会出现一个讨厌的错误消息,要求一个已经不存在的dll文件。
检查注册表时,发现注册表中留下了很多GIT的痕迹。我小心地手动删除了它们,这似乎解决了问题。当然,这是一条危险的路线,但我别无选择。也许仔细研究Windows卸载脚本是一个好主意。
Stef Joosten

2
在 Windows 10 上,尝试以管理员身份运行Cygwin控制台并使用rm -rf命令删除目录。

0

这个解决方案可以让您删除任何被锁定的文件和文件夹,而无需安装任何新程序:

  1. 进入您的资源监视器(在任务管理器中)
  2. 进入CPU选项卡
  3. 搜索您的文件在“相关句柄”中的位置
  4. 现在您将看到哪些进程正在锁定您的文件(很可能是explorer.exe
  5. 关闭这些进程(请小心,这可能会删除未保存的工作)
  6. 删除您之前被锁定的文件,现在应该可以顺利完成。
  7. 可选:重新启动进程(对于explorer.exe:打开任务管理器,文件→新任务→输入“explorer.exe”)

0

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

与另一个建议类似,我在Windows上使用Ubuntu(而不是Cygwin)(https://tutorials.ubuntu.com/tutorial/tutorial-ubuntu-on-windows#0),并发出rm -rf .git,那就完美解决了。


0

这应该可以运行:

在 Git Bash 上执行以下操作:

$ git remote remove <name>

查看您的远程列表:

$ git remote

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

-2

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接