如何清理回购,如果阶段性文件标记为修改?
后
git reset --hard
我得到
Encountered 7 file(s) that should have been pointers, but weren't:
运行git clean -fdx也没有帮助。
如何清理回购,如果阶段性文件标记为修改?
后
git reset --hard
我得到
Encountered 7 file(s) that should have been pointers, but weren't:
运行git clean -fdx也没有帮助。
当前回答
这里有一个修饰,不需要重新安装lfs钩子或模糊任何.gitattributes文件:
git -c filter.lfs.smudge= -c filter.lfs.clean= reset --hard
其他回答
run
git add --renormalize .
并提交这些更改。即使当另一个用户在另一个分支上做同样的事情时,这样做也是安全的,因为LFS指针是从文件的散列派生的。它还可能捕获一些行尾错误的文件。
就像Travis Heeter在他的回答中提到的,试试下面的命令序列:
git lfs uninstall
git reset --hard
git lfs install
git lfs pull
如果这是不工作(因为这不是为我工作),下面的黑客可能工作:
git rm --cached -r .
git reset --hard
git rm .gitattributes
git reset .
git checkout .
这对我很管用!
我有这个确切的错误与一些文件存储与git-LFS和解决它的方式一样,我已经解决了一个linending诱导borked索引。
清除缓存并进行硬复位:
git rm --cached -r .
git reset --hard
对于我来说,这比一个新鲜的克隆要快得多,因为我的repo中有巨大的git-LFS文件。
在这个问题上有多个步骤来解决。
如果你只是处于一个破碎的状态,就像卡在一个分支上,因为你不能重置/丢弃对问题文件的更改:删除.gitattributes文件可能足以让你进行下一次git移动。一旦你移动了你的git,你可能需要恢复.gitattributes文件,但至少你摆脱了困境。
我希望我在尝试上述所有方法之前就知道这一点。至少尝试一下是一个低风险的选择。
上面的命令对我都没用,我在这里找到了答案
git status -s | cut -c 4- | xargs git update-index --assume-unchanged
rm .git/index && git reset