web-dev-qa-db-ja.com

Gitエラー-古い 'some / file / name'のリンクを解除できません(不正なファイル記述子)

(TortoiseGitで)別のブランチに切り替え/チェックアウトしようとすると、次のエラーが表示されます。

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

これは何を意味するのでしょうか?

41
Tariq Ahmed

TortoiseGitの使用中に他のツールを使用していますか?

たとえば、この プロジェクトの言及 Visual Studioとの対話:

Windowsでgitコマンドを実行しているときに古いファイルのリンクを解除できないというエラーが表示された場合、Visual Studioでchromeソリューションを開いており、IntelliSenseを更新してファイルを一時的にロックする可能性があります無作為に。
回避策は、IntelliSenseを完全に無効にするか、多数のファイルに触れる可能性のあるgit操作を実行しているときにソリューションを一時的に閉じることです。

つまり、現在実行中のアプリケーションをできるだけ多く閉じても、問題は解決しませんか?
TortoiseGitでは、別のブランチをチェックアウトできますか?

43
VonC

私はこの問題に遭遇しました。Eclipseはエディターで開いていなくてもファイルをロックしていました。 Eclipseを閉じたら、問題なくチェックアウトできました。

28
Zach Wymer

ファイルは別のプログラムによってロックされており、上書きできません。 ファイルがロックされているアプリケーションを確認 、そのアプリケーションを閉じて、再試行します。

20
James Lawruk

問題がEclipseロックファイルに基づいている場合は、-Dosgi.locking=none。 Eclipse Luna 4.4.0でこの問題に遭遇しました

4
victor

プルしようとすると、githubデスクトップアプリで同じエラーが発生しました。 Visual Studioを終了し、githubデスクトップアプリを管理者モードで実行して解決しました。

1
bthn