我的本地git存储库中的一个文件发生了问题。当我试图改变分支时,它会说:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
这意味着什么?
我的本地git存储库中的一个文件发生了问题。当我试图改变分支时,它会说:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
这意味着什么?
当前回答
在使用gitkraken和命令提示符时,我遇到了同样的问题。然后我运行gitgc命令,它解决了我的问题。所以我很高兴,想分享一些可能有帮助的观点。
gitgc将做什么?
gitgc删除以前调用gitadd时可能创建的无法访问的对象。
何时运行git-gc?
在doc中,鼓励用户在每个存储库中定期运行此任务,以保持良好的磁盘空间利用率和良好的操作性能。
如何使其自动配置?
一些git命令可能会自动运行gitgc;有关详细信息,请参阅下面的--auto标志。如果你知道你在做什么,你只想在没有进一步考虑的情况下永久禁用这个行为,那么就这样做
git config --global gc.auto 0
其他回答
我在运行gitBash和EclipseEGit的同时遇到了这个问题。解决方案:关闭Eclipse。也不会像@khilo提到的那样运行gitgc。
这可能对某人有用;如果以上所有操作都不适用,请执行以下步骤:
关闭您的IDE(我的是Eclipse,不确定它是否适用于Intellij和其他应用程序)或任何其他可能使用git的应用程序。从命令行打开git(在我的例子中,我有gitbash),并运行其他人提到的gitgc。
这对我有魔力。
在我的情况下,原因是我在当天早些时候以管理员身份运行了Visual Studio。当我去切换分支时,发生了错误。
我使用GitExtensions,我以普通用户的身份运行它,而VS在以管理员身份运行时创建的文件(尽管我还是以管理员身份)无法访问。这是我的根本原因。我不知道为什么会出现这种情况,因为我经常在我的主要开发环境中以管理员的身份运行VS,以前从未遇到过这种问题。但由于某些原因,今天上述场景导致VS在该会话期间生成的任何文件都不可编辑。。。您可以读取它们,但不能更改或删除它们,这正是Git在切换分支时要做的。
为了解决Git的问题,我必须以管理员身份启动windows资源管理器,取得所有权,并重新授予自己对有问题的文件和目录的权限。我不完全理解为什么会这样,因为我也是以管理员的身份运行资源管理器,但它确实做到了。
您可以单独对文件执行此操作,但我最终对分支的根文件夹执行了此操作。
因此,我解决问题的具体步骤是:在windows资源管理器中转到分支的顶部,右键单击目录的财产,选择安全选项卡,高级选项,打开“高级安全设置”对话框,在顶部选择更改所有权(可能会显示您已经拥有所有权),我重新选择了自己。然后它会返回到“高级安全设置”对话框,在底部,请记住选中“替换所有对象…”框然后单击应用系统循环处理每个文件和文件夹的所有权,这为我解决了问题。
对我来说,它锁定了我的迁移文件夹,不允许我切换分支。。。所以我最初只是修复了允许我切换分支的目录和子树,但为了解决这个问题,我关闭了VS。当我重新打开VS时,我没有以管理员身份运行VS,我发现现在无法编译解决方案!这是一个类似的问题。它无法编译解决方案,因为所有obj目录现在都不可编辑。。。因此,当我完成上述步骤时,一切都很好。
希望这对某人有所帮助…;)
我以管理员身份打开Powershell并从中解决了这个问题git checkout<branch_name>
为我工作,试过窗户:
停止服务器从IDE运行或关闭IDE
Intellij/Eclipse或任何,它都会起作用。