0

知道如何find . -type f | xargs sed -i 's/[\t ]*$//g'在 repo 根目录后恢复 git repo 中的本地更改吗?

4

2 回答 2

1

由于我一开始误解了这个问题,所以我想我应该澄清一下,这里的问题是你运行的命令也会在 git 的objects目录中重写文件。(很明显,您的工作树中的文件可以使用通常的建议恢复git reset --hard,但通常需要注意的是,未提交的本地更改将丢失。)

我自己不必处理这种情况,但我建议如下:

  1. 将损坏的存储库复制到保存位置,以防万一试图修复损坏会使事情变得更糟。
  2. 尝试运行:git fsck以评估损坏 - 在其他检查中,这将查看哪些文件的内容不再匹配它们的哈希值。
  3. 尝试找到在损坏之前最后一次获取的存储库的任何克隆(并仔细保留它的副本)。如果您小心地.git/config正确更新并获得正确的文件权限,则可以使用它来代替损坏的存储库。
于 2012-10-19T16:10:55.497 回答
0

也许你应该尝试:

git reset --hard HEAD

这是为了丢弃跟踪文件中的所有修改,并将工作目录恢复为 HEAD 状态

于 2012-10-19T16:12:30.523 回答