取消链接文件失败。 我应该再试一次吗?
我的本地git存储库中的一个文件出错了。 当我试图改变分支时说:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
这是什么意思?
这可能意味着另一个程序正在使用这个文件,当你试图改变分支的时候,这个文件阻止了git将文件“移动”到或者移出工作目录。
我在Windows Vista上发生过这种情况,eclipse是“使用”文件的程序。 该文件可能实际上并没有在eclipse中打开,但可能已被eclipse运行的进程打开。
在这种情况下,请尝试closures可能使用过的应用程序中的文件。 如果这不起作用,请彻底退出可能已经打开文件的任何应用程序。
我有这个问题,并通过命令解决它: git gc
上面的命令删除临时和不必要的文件。 (垃圾收集器。)
这个解决scheme从这里为我工作:
这是一个Windows特定的答案,所以我知道这与你无关……我只是为了未来的search者的利益而包括它。
就我而言,这是因为我从一个非提升的命令行运行Git。 “以pipe理员身份运行”为我解决了这个问题。
我在做一个git pull
时候遇到了这个问题。
我试过git gc
,它解决了我的问题。
在我的情况下,没有进程接触文件或目录。 如果path很长,可能会发生这种情况,因为操作系统限制(windows)。 尝试启用全局gitconfiguration中的longpath支持标志,如下所示:
git config --global core.longpaths true
或者如果它对您没有冲突,则尝试设置是/否回答标志
set GIT_ASK_YESNO=false
如果path太长,我还没有find一个成功的解决scheme。
我在做'git pull'时面临同样的问题。 我尝试手动pipe家git命令'git gc',它解决了我的问题。
在我的情况下(Win8.1,TortoiseGit正在运行),这是一个名为“TortoiseSVN状态caching”的进程,正在locking文件。
杀死它让我运行“git gc”没有任何问题。 上面的过程由TortoiseGit启动,所以不需要手动重启。
我在Windows中遇到了这个问题。 我closures了我的IDE(Android Studio)并在git shell中select了YES。 有效。
我在Windows 7上遇到过这种问题,事实certificate这是由于一些孤立的git.exe
进程造成的。
要解决它,打开任务pipe理器并杀死所有的git.exe
进程。
由于git
命令是短暂的,你通常应该永远不会在任务pipe理器中看到任何git.exe
。 当他们在那里,通常意味着什么是错的,你应该杀死这些进程。
在Windows 8上:我运行了git gc,它说git gc已经在运行了,我运行了git gc –force并运行了垃圾收集器。
我可以切换分支和合并没有任何问题,请尝试git gc –force。
gc过程可能因为某种原因没有优雅地停止。
我在/.git/objects/pack
文件夹中有.tmp
文件。 我认为推或拉过程中失败了,所以我删除了这些临时文件,并将HEAD重置为最后一次提交。 不知道这是否是build议,但它为我工作。 此外, git count-objects -v
给了我一个不属于包文件夹的.tmp
文件列表。
或者在Windows git open cmd.exe
y / n消息, git open cmd.exe
并运行:
SETX GIT_ASK_YESNO false
看到这里: https : //twitter.com/petercamfield/status/494805475733807104
终于尝试了各种解决scheme后, git clean -f
帮助了我。
编辑:我再次打这个问题几次 – closures所有依赖于git的进程似乎帮助(如gitbash,Eclipse的IDE等)
这是一个Windows特定的答案,所以我知道这与你无关……我只是为了未来的search者的利益而包括它。
就我而言,这是因为我从一个非提升的命令行运行Git。 “以pipe理员身份运行”为我解决了这个问题。
非常感谢
这可能是一个单独的gitk窗口运行看到一些git的历史。
只要closures那个窗口来解决这个问题。
我遇到这个问题同时运行git Bash和Eclipse EGit。 解决scheme:closuresEclipse。 也不会伤害运行git gc
作为@khilo提到。
上述答案似乎没有工作,运行git fetch -p
为我做了这项工作。
如上所述,其他东西是保存文件。 事情是这个程序不看我们的可疑。 GitKraken打开时,我试图从控制台上做一个git pull。 closuresGitKraken解决了这个问题。
这可能对某人有用; 如果以上所有内容都不适合您,请按照以下步骤操作:
-
closures你的IDE(我的是Eclipse,不知道它是否适用于Intellij和其他)或者其他可能使用git的应用程序。
-
从命令行打开git(在我的情况下,我有git bash)并运行
git gc
正如其他人所说的那样。
这对我来说是神奇的。
我在Windows中遇到了这个问题,你可能想要以pipe理员身份运行git bash,然后执行所需的命令,为我解决了这个问题。
在Windows上,在一个相当大的仓库的git clone
上看到了这个错误。 closuresSmartGit,并暂停我的备份软件(CrashPlan),之后它工作。 不知道哪两个技巧,但如果运行,这也可能为你做。
我在做一个git pull的时候遇到了同样的问题,正如上面所说的那样,这是因为一个程序持有这些文件,并且不允许git pull。 closures程序帮助。 通常,从文件正在签入的IDE(如Eclipse)将在后台保存它。 closures相同和重新运行git pull解决了我的问题。
尝试重新启动Apache或其他Web服务器,因为它可能已经locking了一些文件。