44

当尝试切换/结帐(在 TortoiseGit 中)到另一个分支时,我收到以下错误:

error: unable to unlink old 'foo/bar.cfc' (Bad file descriptor)

这是什么意思?

4

6 回答 6

43

您在使用 TortoiseGit 时是否使用任何其他工具?

例如,这个项目提到了与 Visual Studio 的交互:

如果您在 Windows 上运行 git 命令时看到有关无法取消链接旧文件的错误,很可能是您在 Visual Studio 中打开了 chrome 解决方案并且它正在更新 IntelliSense,这将短暂地随机锁定文件。
解决方法是完全禁用 IntelliSense,或者确保在执行任何可能涉及大量文件的 git 操作时暂时关闭解决方案。

换句话说,如果尽可能多地关闭当前正在运行的应用程序,问题是否仍然存在?
TortoiseGit 会允许你检查另一个分支吗?

于 2010-12-15T17:51:54.433 回答
29

我遇到了这个问题——即使文件没有在编辑器中打开,Eclipse 也会锁定文件。一旦我关闭了eclipse,我就可以很好地结帐了。

于 2012-02-29T14:38:21.120 回答
21

该文件被另一个程序锁定,无法覆盖。查看哪个应用程序锁定了文件,关闭该应用程序,然后重试。

于 2013-08-16T14:45:04.250 回答
4

如果您的问题是基于 Eclipse 锁定文件,您可以使用-Dosgi.locking=none. 我在 eclipse Luna 4.4.0 中遇到了这个问题

于 2014-07-10T11:43:25.460 回答
1

当我尝试拉动时,我在 github 桌面应用程序中遇到了同样的错误。我通过关闭 Visual Studio 并以管理员模式运行 github 桌面应用程序来解决它。

于 2018-07-24T07:10:41.520 回答
0

使用以下内容制作一个bat文件并运行它。它将重新启动
资源管理器,如果不是您的 IDE,这通常是原因

taskkill /f /IM explorer.exe
start explorer.exe
exit
于 2020-06-09T11:52:36.777 回答