ローカルのgitリポジトリにあるファイルの1つで何か問題が発生しています。私がブランチを変更しようとしているとき、それは言います:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
それはどういう意味ですか?
ローカルのgitリポジトリにあるファイルの1つで何か問題が発生しています。私がブランチを変更しようとしているとき、それは言います:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
それはどういう意味ですか?
回答:
これは、別のプログラムがファイルを使用しているために、ブランチを変更しようとしているときに、gitがファイルを作業ディレクトリに移動したり、作業ディレクトリから移動したりできないことを意味します。
私はこれをeclipseがファイルを「使用する」プログラムであるWindows Vistaで発生させました。ファイルは実際にEclipseで開かれていない可能性がありますが、Eclipseによって実行されたプロセスによって開かれている可能性があります。
このイベントでは、それを使用した可能性のあるアプリケーションでファイルを閉じてみてください。それが機能しない場合は、ファイルを開いた可能性のあるアプリケーションを完全に終了します。
GitKraken
する場合、リベースのようなコマンドを実行すると、これが発生する可能性があります
私はこの問題を抱えており、次のコマンドで解決しました:git gc
上記のコマンドは一時ファイルと不要なファイルを削除します。(ガベージコレクター。)
git pull
git gc
自動的に開始され、gcはいくつかの.packファイルと.inxファイルにアクセスしようとしました。これらは、git pull
コマンドを所有する「windows git」プロセスによって保持されていました。git gc
手動で実行すると、git pull
実際に問題が解決します。
git gc
に同じエラーが再び発生しましたgc
ここからのこの解決策は私にとってうまくいきました:
これはWindows固有の回答であるため、あなたには関係がないことは承知しています...将来の検索者のために含めるだけです。
私の場合は、昇格していないコマンドラインからGitを実行していたためです。「管理者として実行」で修正されました。
Ctrl+C
リンクできないファイルの非常に長いリストを終了するために入力しました。gitbash、私のIDE、およびGitHub Windowsアプリケーションを終了しました。昇格された「管理者として実行」モードでgitbashを再起動しました。そして走ったgit gc --aggressive
。完了するまでしばらくかかりましたが、エラーなしで完了しました。
私の場合、ファイルやディレクトリにアクセスするプロセスはありません。オペレーティングシステムの制限(Windows)が原因で、パスが非常に長い場合に発生する可能性があります。以下に示すように、グローバルgit構成でロングパスサポートフラグを有効にしてみてください。
git config --global core.longpaths true
または、それが競合しない場合は、はい/いいえの回答フラグを設定してみてください
set GIT_ASK_YESNO=false
パスが長すぎると、解決策が見つかりません。
GIT_ASK_YESNO
、これに関する情報が見つかりません。それはどこから来たのですか ?
core.longpaths
追加で:reset --hard prune gcは私にとってはうまくいきましたが、その
これは誰かにとって役立つかもしれません。上記のすべてがうまくいかない場合は、次の手順に従ってください。
IDE(Eclipseでしたが、Intellijなどに当てはまるかどうかはわかりません)またはgitを使用している可能性のある他のアプリを閉じます。
コマンドラインからgitを開き(私の場合はgit bashを使用しました)、git gc
他の人が述べたように実行します。
これは私にとって魔法でした。
gitkrakenとコマンドプロンプトを使用しているため、同じ問題が発生しました。その後、git gc
コマンドを実行する と問題が解決しました。だから私は幸せであり、役立つかもしれないポイントのいくつかを共有したいと思います。
何git gc
をしますか?
git gc
以前のgit addの呼び出しから作成された可能性のある到達不能オブジェクトを削除します。
いつ実行するgit gc
か?
docから、ユーザーはこのタスクを各リポジトリ内で定期的に実行して、ディスク領域の使用率と運用パフォーマンスを維持することをお勧めします。
自動構成可能にする方法は?
一部のgitコマンドはgit gcを自動的に実行する場合があります。詳細については、以下の--autoフラグを参照してください。あなたが何をしているのかを知っていて、あなたが望むすべては、この問題をさらに考慮せずに永久に無効にすることだけであれば、
git config --global gc.auto 0
フォルダ内の.tmp
ファイルでこの問題が発生しました/.git/objects/pack
。プッシュまたはプル中に何かが失敗したと思うので、これらの一時ファイルを削除し、HEADを最後のコミットにリセットしました。これが助言されるかどうかはわかりませんが、私にとってはうまくいきました。また、packフォルダーに属していないファイルのgit count-objects -v
リストも教えてくれました.tmp
。
または、ウィンドウでy / nメッセージを抑制してgit open cmd.exe
実行するには:
SETX GIT_ASK_YESNO false
ここに見られる:https : //twitter.com/petercamfield/status/494805475733807104
git gc
にgit count-objects -v
役立ちpack
ます。
「git pull」を実行しているときに同じ問題に直面しました。手動のハウスキーピングgitコマンド「git gc」を試してみたところ、問題は解決しました。
上記の回答のいずれも機能しないように思われた後、ランニングgit fetch -p
は私のために仕事をしました。
Windowsでは、git clone
(かなり大きな)リポジトリでこのエラーが発生しました。SmartGitを閉じ、バックアップソフトウェア(CrashPlan)を一時停止しましたが、その後は機能しました。2つのうちどちらがトリックを実行したかはわかりませんが、どちらかを実行している場合、これもあなたのためにそれをするかもしれません。
これと同じエラーが発生し、ファイルを開いているアプリを閉じると解決しました。戻って「Y」を押すことができました