git rebase:“;错误:无法统计';文件';:“拒绝许可”;

git rebase:“;错误:无法统计';文件';:“拒绝许可”;,git,git-rebase,Git,Git Rebase,我使用的是git,然后进行了一个小的提交,然后是一个大的提交。我决定使用git-rebase在推送这两个提交之前将它们挤压在一起。(我以前从未这样做过。) 所以我做了: git-rebase-i头~2 这给了我我的编辑器,在那里我选择了选择较早的提交,并挤压较晚的提交。当我保存时,git说: 错误:无法统计“文件名”:权限被拒绝 无法将sha1应用于以后的提交。。。该提交的初始文本行 现在: 执行git日志时,两个提交都不会出现 git status告诉我我“目前不在任何分支机构” 一个文件列

我使用的是git,然后进行了一个小的提交,然后是一个大的提交。我决定使用
git-rebase
在推送这两个提交之前将它们挤压在一起。(我以前从未这样做过。)

所以我做了:

git-rebase-i头~2

这给了我我的编辑器,在那里我选择了选择较早的提交,并挤压较晚的提交。当我保存时,git说:

错误:无法统计“文件名”:权限被拒绝

无法将sha1应用于以后的提交。。。该提交的初始文本行

现在:

  • 执行git日志时,两个提交都不会出现
  • git status
    告诉我我“目前不在任何分支机构”
  • 一个文件列为已修改并在索引中,两个文件列为未跟踪。我的第一次提交只有一个文件(我想),而我的第二次提交有十几个文件

发生什么事了!?如何修复它?

我只在Windows上见过这个错误,它的意思似乎是在git尝试应用补丁时,有什么东西阻止了它修改文件

Windows倾向于在不必要的情况下让进程以独占方式访问文件,在过去,病毒检查一直是怀疑的来源之一,但我从来没有确凿地证明过这一点

也许最简单的方法就是中止并重试,希望下次不会发生

git rebase --abort

您可以尝试使用
git apply
并了解commit git在执行
git rebase之前实际要做的事情--继续
,但老实说,我不推荐这样做。我看到这种尝试的大多数情况下,意外丢失或弄乱某些文件的可能性都大于偶数。

在Windows上,阻止这些文件的过程可能是一个乌龟程序。
打开任务管理器并结束进程TGitCache.exe

如果您使用的IDE(如果您使用IDE)也可能会妨碍您。这就是我在使用QtCreator时遇到的情况。

当我在我的机器上看到这一点时,它比“某个进程打开了文件”更糟糕。文件的实际所有权被提升到我(以管理员身份运行)只能在重新启动后才能访问它的程度

据我所知,IIS是问题的一部分。如果我在需要修改大量文件的两个主要分支之间切换,git将删除一个文件或目录(通常是DLL),而IIS正试图对其执行某些操作。此时,IIS进程会自动覆盖磁盘上的文件,该文件的版本已锁定,并且似乎不属于任何人

此时停止IIS不会起作用。我发现最好的办法是重新启动,并记住在将来跨主要分支更改之前停止IIS


我知道这并不能真正回答问题,但可能对其他人有所帮助。

尝试关闭文件夹打开的所有程序,如编辑器、资源管理器窗口、命令提示和FTP程序。这总是能解决我在Windows上遇到的问题。

我遇到这个问题是由我的编辑器Intellij引起的。作为内部版本控制的一部分,它已经检查并锁定了所有隐藏的git文件。(出于各种原因,我没有使用Intellij附带的git插件…)

所以我以管理员的身份打开了一个普通的dos窗口,切换到目录,然后执行

attrib -R /S

这解除了对文件的锁定,之后一切正常,我可以使用GitHub windows客户端同步更改。

只需关闭IDE(VISUAL STUDIO/ATOM等)。它可能会工作

当我的VS1013位于目标为8.1的分支上时,我尝试签出一个8.0分支时,出现了此错误。我需要返回到VS并允许它更新ALL。然后我就可以无误地签出8.0分支。

我同意上面“关闭Visual Studio”的回答

但是,即使在关闭Visual Studio之后,我还必须执行另一个步骤,那就是在任务资源管理器中手动杀死“devenv.exe”Visual Studio进程。 完成此操作后,我可以再次在gitbash中运行:

吉特拉力


“无法统计文件名”错误消失。这可能是由于Visual Studio扩展使进程即使在关闭后也能保持更长时间的打开状态。

当我遇到同样的错误时,我也在使用Git Shell的Windows计算机上

然而,当时我打开了多个Git终端

第一个终端收到了您在上面发布的错误,而另一个终端先前从yeoman运行了
grunt-service
terminal命令(链接如下)。第二个终端需要保持打开状态以承载本地服务器实例

关闭所有正在运行进程的终端窗口可能会导致错误消失

至少这对我来说是有效的。关闭第二个终端窗口后,我可以轻松地签出不同的分支并操作文件

咕噜声服务命令-Yeoman.I/O

当您使用SublimateText时,如果弹出窗口要求您购买该程序,并且该窗口未关闭,也可能发生这种情况。

我也遇到类似问题。但这很容易解决。 在Windows计算机上,我的文件资源管理器打开了一个文件夹,该文件夹存在于一个分支中,但不存在于我签出的另一个分支中。
关闭文件资源管理器解决了问题。

我刚刚在Win7中遇到了这个问题

$git隐藏流行音乐 错误:无法统计“父文件夹/子文件夹”:权限被拒绝 错误:无法统计“父文件夹/子文件夹”:权限被拒绝

诊断:

1> 我转到子文件夹,它就在那里,我无法删除它

2> 使用“process explorer”->查找->查找句柄和DLL->将“子文件夹”名称放在那里并进行搜索

结果:原来是XMLSpy打开了其中一个xml,关闭XMLSpy并再次尝试隐藏pop,它现在正在工作。