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

于是我做了:

我们回来了

这给了我一个编辑器,我选择选择较早的提交并删除较晚的提交。我攒钱的时候,少不要脸的人说:

错误:不能stat 'filename':权限被拒绝 不能为以后的提交应用sha1…提交的初始文本行

Now:

当我做git日志时,也没有提交。 git状态告诉我“当前不在任何分支上”。 一个文件被列为已修改并在索引中,两个文件被列为未跟踪。我的第一次提交只有一个文件(我想),而我的第二次提交有一打。

!发生了什么?我该怎么解决呢?


当前回答

在我的例子中,这个文件是一个shell脚本(*.sh文件),用于为我的开发人员将我们的项目部署到本地开发服务器。

shell脚本应该工作一致,并且可以更新;所以我跟踪它在相同的Git项目的代码,脚本是要部署。

shell脚本运行一个可执行文件,然后允许该可执行文件运行;所以脚本仍在运行;所以我的shell仍然打开脚本;所以它是锁定的。

我按Ctrl+C'd杀死脚本(所以现在我的本地开发服务器不再可访问),现在我可以自由签出。

其他回答

在我的例子中,我有一个webpack开发服务器在后面运行。

Windows 10 64位同样问题,运行Git Bash版本2.9.0.windows1 使用Atom作为我的编辑器。

这对我来说很有效:我将Git软件文件夹(对我来说,这是C:\Program Files\ Git)添加到Windows Defender的排除项中。

在排除添加后,git签出'file'工作正常。

我刚刚在win7下玩了这个。

$ git隐藏pop error: cannot stat 'parentFolder/subfolder':权限被拒绝 error: cannot stat 'parentFolder/subfolder':权限被拒绝

诊断:

我去了子文件夹,它在那里,我不能删除它!

2>使用“进程资源管理器”->查找->查找句柄和dll ->将“子文件夹”的名称放在那里并搜索。

结果:原来它的XMLSpy已经打开了其中一个xml,关闭xml Spy并尝试再次隐藏流行,它现在正在工作。

我们通过右键单击程序文件中的sh.exe并在安全选项卡中设置“以管理员身份运行”来解决权限问题。

在我的例子中,这个文件是一个shell脚本(*.sh文件),用于为我的开发人员将我们的项目部署到本地开发服务器。

shell脚本应该工作一致,并且可以更新;所以我跟踪它在相同的Git项目的代码,脚本是要部署。

shell脚本运行一个可执行文件,然后允许该可执行文件运行;所以脚本仍在运行;所以我的shell仍然打开脚本;所以它是锁定的。

我按Ctrl+C'd杀死脚本(所以现在我的本地开发服务器不再可访问),现在我可以自由签出。