取消链接文件失败。 我应该再试一次吗?
我的本地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了一些文件。