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

于是我做了:

我们回来了

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

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

Now:

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

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


当前回答

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

其他回答

在win10中使用SourceTree,通过关闭Atom编辑器修复了这个问题。

错误重现:

在分支B中,创建一个md文件,使用Atom编辑、保存并提交。 切换到分支A,从服务器上拉下新的提交。 尝试切换回来,哎呀,它说“错误:不能统计‘文件’:权限被拒绝”。

这通常发生在预处理软件/应用程序监视项目时,比如Prepros或Codekit。此外,Atom和Sublime(甚至notepad++)可以导致这种情况发生,如果项目中的文件当前正在编辑。

解决这个问题最简单的方法是关闭任何打开项目文件的文件,合并分支,然后重新打开它们以刷新它。这也将避免任何问题,即程序不再意识到已经发生的任何更改,迫使您手动刷新项目。

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

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

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