赞
踩
我的本地git存储库中的文件之一发生了问题。 当我尝试更改分支时,它说:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
那是什么意思呢?
就我而言,没有任何进程可以处理文件或目录。 如果路径很长,可能是由于操作系统限制(Windows)而发生的。 尝试如下所示在全局git配置中启用longpath支持标志:
git config --global core.longpaths true
或尝试设置是/否答案标志(如果它对您没有冲突)
set GIT_ASK_YESNO=false
如果路径太长,则找不到成功的解决方案。
我在/.git/objects/pack
文件夹中的.tmp
文件有此问题。 我认为在推或拉过程中发生了某些故障,因此我删除了这些临时文件,并将HEAD重置为我的最后一次提交。 不知道是否建议这样做,但对我有用。 git count-objects -v
给我列出了不属于pack文件夹的.tmp
文件。
或者在Windows git open cmd.exe
禁止显示y / n消息,请git open cmd.exe
并运行:
SETX GIT_ASK_YESNO false
在这里看到: https : //twitter.com/petercamfield/status/494805475733807104
我遇到了这个问题,并通过以下命令解决了该问题: git gc
上面的命令删除了临时文件和不必要的文件。 (垃圾收集器。)
这可能是一个单独的gitk窗口,正在运行以查看一些git历史记录。
只需关闭该窗口即可解决该问题。
我遇到了同时运行git Bash和Eclipse EGit的问题。 解决方案:关闭Eclipse。 如@khilo所述,运行git gc
也不会受到损害。
从该解决方案在这里为我工作:
这是Windows特定的答案,所以我知道它与您无关...我只是为了将来的搜索者而包括它。
就我而言,这是因为我是从非提升命令行运行Git的。 “以管理员身份运行”为我修复了该问题。
我在Windows 7上遇到过此类问题,结果是由于某些孤立的git.exe
进程所致。
要解决该问题,请打开任务管理器并杀死所有git.exe
进程。
由于git
命令是短暂的,因此您通常git.exe
在任务管理器中看到任何git.exe
。 当它们在那里时,通常意味着出了点问题,您应该终止这些进程。
在我的情况下(Win8.1,正在运行TortoiseGit),正是锁定文件的过程称为“ TortoiseSVN状态缓存”。
杀死它可以使我运行“ git gc”而没有更多问题。 TortoiseGit启动了上述过程,因此无需手动重新启动它。
我在进行git pull
时遇到此问题。
我尝试了git gc
,它解决了我的问题。
在Windows 8上:我运行了git gc,并说git gc已经在运行,我运行了git gc --force,然后运行了垃圾收集器。
然后,我可以切换分支并合并而没有任何问题,请尝试git gc --force。
也许gc进程由于某种原因没有正常停止。
在尝试了各种解决方案之后,最终git clean -f
帮助了我。
编辑:我几次再次遇到问题-关闭依赖git的所有进程似乎有帮助(例如gitbash,Eclipse IDE等)
在以上答案均无效后,运行git fetch -p
对我有用。
https://git-scm.com/docs/git-fetch
我在Windows中遇到了这个问题,您可能想以管理员身份运行git bash,然后执行desire命令,为我解决了这个问题。
我在Windows中遇到了这个问题。 我关闭了IDE(Android Studio),并在git shell中选择了YES。 有效。
我在做“ git pull”时也遇到了同样的问题。 我尝试了手动整理git命令'git gc',它解决了我的问题。
如上所述,还有其他内容正在保存文件。 问题是该程序对我们来说似乎并不可疑。 打开GitKraken时,我试图从控制台进行git pull。 关闭GitKraken解决了该问题。
这对某人可能有用; 如果上述所有方法都不适合您,请按照以下步骤操作:
关闭您的IDE(我的设备是Eclipse,不确定它是否适用于Intellij等),或者关闭任何其他可能使用git的应用程序。
从命令行打开git(在我的情况下,我有git bash),然后像其他人提到的那样运行git gc
。
这为我带来了魔力。
在Windows上,在(相当大)存储库的git clone
上看到此错误。 关闭SmartGit并暂停我的备份软件(CrashPlan),然后运行。 不确定2个中的哪个成功了,但是如果运行其中一个,这也可能对您有用。
进行git pull时,我遇到了同样的问题,如上所述,这是因为程序保留了这些文件,并且不允许进行git pull。 结束程序很有帮助。 通常,从中检入文件的IDE(如Eclipse)会将其保留在后台。 关闭相同的文件并重新运行git pull可以为我解决问题。
运行后命令
git rm -rf foo.bar
我看到错误
Unlink of file 'foo.bar' failed. Should I try again? (y/n)
因为另一个程序正在使用此文件 。 例如,当我以调试模型运行Java Web应用程序或在服务器上运行Web应用程序时,无法删除日志文件。 关闭应用程序服务器(或关闭调试过程),然后重试
git rm -rf foo.bar
我看到文件已被删除。
我遇到了同样的错误,并关闭了打开文件的应用程序,从而解决了该问题。 我可以回去按“ Y”
如果要开发Web应用程序,则常见的原因是忘记关闭服务器。 例如,这可能是一个简单的Node.js进程,或者在Windows上,您的IIS进程作为后台进程运行时更加流畅。
当我使用gitkraken和命令提示符时,我遇到了同样的问题。 然后我运行git gc
命令,它解决了我的问题。 所以我很高兴,并希望分享一些可能有用的观点。
git gc
会做什么?
git gc
删除可能是由先前git add调用创建的无法访问的对象。
什么时候运行git gc
?
从doc开始 ,鼓励用户在每个存储库中定期运行此任务,以保持良好的磁盘空间利用率和良好的运行性能。
如何使其可自动配置?
一些git命令可能会自动运行git gc; 有关详细信息,请参见下面的--auto标志。 如果您知道自己在做什么,并且想要做的就是永久禁用此行为而无需进一步考虑,请执行
git config --global gc.auto 0
我尝试了git gc
,它解决了我的问题。
我尝试了此页面上的每条提示,但没有任何帮助。 我正在执行git fetch
和git reset --hard origin/development
给了我未知的错误。 我无法重置为最新提交。
帮助的是签出另一个分支,然后签出上一个分支。 很奇怪,但是它解决了问题。
在我的情况下,有一个用于打开该特定文件的复制或替换窗口,因此出现了取消链接错误。 我关闭了它,没有解除链接错误
我可以通过以管理员身份打开Powershell并从那里git checkout <branch_name>
来解决此问题。
如果关闭您的IDE并运行此处列出的各种git命令无济于事,请尝试手动杀死所有正在运行的Java进程。 我的eclipse可能留下了一个Java进程,以某种方式使配置文件保持打开状态。
如果您使用Docker并运行Windows 10,则可能要停止文件可能在其上运行的容器。 要显示容器的状态,请运行
docker ps -a
要阻止它们,只需运行
docker stop <container name or container id>
这对我有用,因为我正在使用.sh文件运行本地文件
这可能意味着另一个程序正在使用该文件,这将阻止git在尝试更改分支时将文件“移动”到工作目录中或从工作目录中移出。
我曾经在Windows Vista上发生过这种情况,其中eclipse是“使用”文件的程序。 该文件可能实际上没有在eclipse中打开,但是可能已经由eclipse运行的进程打开了。
在这种情况下,请尝试在可能已使用该文件的任何应用程序中关闭该文件。 如果这样不起作用,请完全退出可能已打开文件的所有应用程序。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。