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

于是我做了:

我们回来了

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

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

Now:

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

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


当前回答

我也是在使用Git Shell的Windows机器上遇到同样的错误。

但是,当时我打开了多个Git终端。

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

关闭所有正在运行的进程的终端窗口可以使错误消失。

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

咕哝服务命令-自耕农。I / O http://yeoman.io/learning/

其他回答

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

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

attrib -R /S

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

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

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

关闭你的IDE (VISUAL STUDIO/ATOM等)。可能会有用

如果使用vscode,杀死终端并打开一个新终端。 否则也可以关闭终端