我本地git存储库中的一个文件出现了问题.当我试图更改分支时,它说:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
Run Code Online (Sandbox Code Playgroud)
这意味着什么?
小智 667
这可能意味着另一个程序正在使用该文件,这会阻止git在您尝试更改分支时将文件"移动"到工作目录中或从工作目录中移出.
我在Windows Vista上发生过这种情况,其中eclipse是"使用"该文件的程序.该文件可能实际上并未在eclipse中打开,但可能已由eclipse运行的进程打开.
在这种情况下,请尝试在可能已使用它的任何应用程序中关闭该文件.如果这不起作用,请完全退出可能已打开文件的任何应用程序.
小智 262
我有这个问题,并通过命令解决了它:git gc
上面的命令删除临时和不必要的文件.(垃圾收集器.)
sep*_*ehr 78
从该解决方案在这里为我工作:
这是一个Windows特定的答案,所以我知道它与你无关......我只是为了未来的搜索者的利益而包含它.
在我的情况下,这是因为我从一个非提升的命令行运行Git."以管理员身份运行"为我修复了它.
and*_*hdo 17
在我的情况下,没有任何进程触及文件或目录.如果路径很长,可能会发生这种情况,因为操作系统限制(窗口).尝试在全局git配置中启用longpath支持标志,如下所示:
git config --global core.longpaths true
Run Code Online (Sandbox Code Playgroud)
或尝试设置是/否答案标志,如果它没有冲突
set GIT_ASK_YESNO=false
Run Code Online (Sandbox Code Playgroud)
如果路径太长,我找不到成功的解决方案.
这可能对某人有用; 如果以上所有内容都不适合您,请按照下列步骤操作:
关闭你的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
Run Code Online (Sandbox Code Playgroud)
小智 8
在我的情况下(Win8.1,运行TortoiseGit),正在锁定文件的过程称为"TortoiseSVN状态缓存".
杀死它让我可以运行"git gc"而不会出现任何问题.上面的过程由TortoiseGit启动,因此无需手动重启.
我在Windows 7上遇到过此类问题,事实证明这是由于某些孤立git.exe过程引起的。
要解决此问题,请打开任务管理器并终止所有git.exe进程。
由于git命令是短命的,因此通常不应git.exe在任务管理器中看到任何命令。当它们在那里时,通常意味着出了点问题,您应该终止这些进程。
在Windows 8上:我运行了git gc,它说git gc已经在运行,我运行了git gc --force,并且运行了垃圾收集器。
然后,我可以切换分支并合并而没有任何问题,请尝试git gc --force。
也许gc进程由于某种原因没有正常停止。
| 归档时间: |
|
| 查看次数: |
251541 次 |
| 最近记录: |