4

我尝试使用 sed 来更改我的 git 存储库中的所有文件(我在意识到它正在更改 git 文件后点击了 Control-C)。现在我在尝试提交时收到此消息:

$ commit -a
fatal: could not open '.git/COMMIT_EDITMSG': Permission denied

我能做些什么?改回文件会相当困难(我一直在尝试用 string 替换所有出现的astring b,但b已经在许多文件中出现了)。

我没有存储库的任何备份。

编辑:实际上我有一个,但它以类似的方式搞砸了(我这样做是为了测试一些东西,之后没有将它用作 git 存储库)。

4

2 回答 2

3
  1. 修复.git/config. 我能想象的唯一导致权限被拒绝错误编辑提交日志是无效的编辑器设置
  2. 检查权限。它可能仍然是不同的问题。
  3. 在存储库上做一个git fsck。如果它给您错误,它可能无法恢复,您需要获取存储库的另一个副本(重新克隆上游,恢复备份等)
  4. 如果您真的很绝望,请尝试撤消对 fsck 将声明为错误的所有文件的转换。如果存在歧义,您将不得不尝试所有可能的组合。至少当 fsck 停止列出文件时,您可以确定您正确地撤消了更改。
于 2013-08-19T13:20:39.213 回答
0

您可以克隆存储库并将.git目录移动到有问题的文件夹。

git clone repo-address tmp-dir
mv tmp-dir/.git issue-dir
rm -rf tmp-dir

issue-dir你的目录在哪里。

于 2013-08-19T13:21:41.400 回答