我已经尝试使用 sed 来更改我的 git 存储库中的所有文件(在意识到它正在更改 git 文件后我按下了 Control-C)。现在我在尝试提交时收到此消息:
$ commit -a
fatal: could not open '.git/COMMIT_EDITMSG': Permission denied
我能做什么?改回文件会相当困难(我一直试图用字符串 b
替换所有出现的字符串 a
,但是 b
是已经出现在许多文件中)。
我没有存储库的任何备份。
编辑:实际上我有一个,但它以类似的方式搞砸了(我这样做是为了测试一些东西,之后没有将它用作 git 存储库)。
最佳答案
- 修复
.git/config
。我唯一能想到的导致权限被拒绝的错误编辑提交日志是无效的编辑器设置 - 检查权限。这可能仍然是不同的问题。
- 对存储库执行
git fsck
。如果它给你错误,它可能无法恢复,你需要获取存储库的另一个副本(重新克隆上游,恢复备份等) - 如果您真的很绝望,请尝试撤消对 fsck 将声明为坏的所有文件的转换。如果有歧义,您将不得不尝试所有可能的组合。至少您可以确定当 fsck 停止列出该文件时您正确地撤消了更改。
关于git - 在所有文件上盲目使用 sed 后修复 git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18314627/