在repo root dir中替换后,恢复git存储库中的本地更改

时间:2012-10-19 16:01:37

标签: git

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

2 个答案:

答案 0 :(得分:1)

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

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

  1. 将损坏的存储库复制到某处,以防万一尝试修复损坏会使事情变得更糟。
  2. 尝试运行:git fsck以评估损坏 - 在其他检查中,这将查看哪些文件的内容不再与其哈希相匹配。
  3. 尝试查找在损坏之前最后一次获取的存储库的任何克隆(并仔细保留它的副本)。如果您需要正确更新.git/config并获得正确的文件权限,则可以使用此代替损坏的存储库。

答案 1 :(得分:0)

可能你应该尝试:

git reset --hard HEAD

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