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

于是我做了:

我们回来了

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

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

Now:

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

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


当前回答

我同意上述“关闭Visual Studio”的答案。

然而,即使在我关闭Visual Studio之后,我还必须做一个额外的步骤,那就是在任务资源管理器中手动杀死“devenv.exe”Visual Studio进程。 在我这样做之后,我能够再次运行gitbash:

git pull

并且“不能统计文件名”错误消失了。这可能是由于Visual Studio扩展使进程在关闭后仍然保持更长的时间。

其他回答

如果你打开了Meld合并工具,关闭它。阻止文件覆盖。

我刚刚在win7下玩了这个。

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

诊断:

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

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

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

我也遇到过类似的问题。但是解决起来很简单。 在一台Windows机器上,我的文件资源管理器打开了一个文件夹,它存在于一个分支中,但不存在于我签出的另一个分支中。 关闭文件资源管理器解决了这个问题。

我退出了正在访问项目目录的文本编辑器,然后尝试合并到主分支,它工作了。

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

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

attrib -R /S

这消除了文件上的锁,在那之后一切都正常了,我可以使用GitHub windows客户端同步我的更改。