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

于是我做了:

我们回来了

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

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

Now:

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

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


当前回答

试图关闭IDE,如Sublime, VS Code, Webstorm,…关闭打开该文件夹的程序,如CMD、Powershell、cder、Terminal…会解决这个问题。

其他回答

我刚刚遇到了这个问题。这里没有一个答案能帮我解决这个问题。

最终是我在一个分支上添加的nuget包,一旦切换回主分支,似乎不存在。一旦我做了合并,它会说newtonsoft…xml不能统计。我会去文件的问题,打开它,但Windows抛出一个错误,说它无法找到文件(即使我正看着它)

我解决这个问题的方法是右键单击删除文件(这是有效的,但我无法打开它,因为windows找不到它??),并尝试再次合并,它解决了这个问题。

很奇怪。

希望这对以后的人有所帮助。

在Windows上,它可以是一个TortoiseGIT进程来阻止这些文件。 打开任务管理器,结束TGitCache.exe进程。

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

一个替代的解决方案,而不是关闭所有可能锁定目录的应用程序,就像其他答案所说的那样,将使用一个实用程序,将解锁文件/目录,而不关闭一切。(我讨厌重新启动Visual Studio)

LockHunter是我使用的一个:https://lockhunter.com/可能还有其他的,但这个对我来说非常有用。

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

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

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