致命:参考的格式无效:'refs/stash 2' (128)

Posted

技术标签:

【中文标题】致命:参考的格式无效:\'refs/stash 2\' (128)【英文标题】:fatal: Reference has invalid format: 'refs/stash 2' (128)致命:参考的格式无效:'refs/stash 2' (128) 【发布时间】:2015-02-14 19:04:59 【问题描述】:

我是一名新的独立开发者,正在开发我的第一个 ios 应用。我正在使用 Git for Mac 来备份我的进度,这是我第一次使用 Git。

我正在两台笔记本电脑上开发应用程序。

我还将我的 Xcode 项目保存在我的 iCloud 文件夹中,以便它们可以在两台 Mac 上同步。

前 2 个月一切正常,但我在 Mac 版 Git 上遇到了这个错误,我无法再同步到 Git,也无法恢复到较旧的提交。

这是错误:

致命:引用的格式无效:'refs/stash 2' (128)

我的猜测是我的 Mac 之间发生了 iCloud 同步错误,导致 Git 搞砸了。

我想做的就是修复 git 以便我可以恢复我上次工作的提交,然后我将从 iCloud 中删除我的项目以防止再次发生此错误。

您能提供的任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

查看您的 .git 文件夹下的树:tree .git 并检查您的 git 文件系统中是否确实有此 ref。

如果您想重置您的数据(如果可以的话),请执行git reset HEAD --hard,它会将您当前的分支重置为最新的提交。


您也可以尝试其他一些解决方案

备份您的存储库,因为以下命令是不可逆的。

搜索冲突文件并删除find . -type f -name "* conflicted copy*" -exec rm -f \;

最后,从 git 的打包引用文件中删除所有“冲突”引用awk '!/conflicted/' .git/packed-refs > temp && mv temp .git/packed-refs

还可以看看这里(冲突文件可能在哪里):

.git/logs/refs/remotes/origin/
.git/logs/refs/heads/
.git/refs/remotes/origin/
.git/refs/heads/

希望它能帮助您解决问题。

【讨论】:

感谢@jsexpert 的快速回复!我在 Mac 上打开终端并导航到我的 Xcode 项目文件并尝试tree .git 并得到-bash: tree: command not found。我尝试了git reset HEAD --hard 并得到了Reference has invalid format: 'refs/stash 2'。我现在正在研究如何在尝试其他建议之前备份我的存储库。谢谢。 在这种情况下,git 已经识别出错误的引用名称:它是refs/stash 2(带有嵌入的空格)。这可能不会被“打包”,所以它只是一个具有该名称的文件:.git/refs/stash 2。删除它最坏的情况应该是失去一个藏匿处。 else 可能潜伏着什么,我不知道;我不让 icloud(或保管箱或类似的东西)触摸我的 .git 目录.... 谢谢@torek 那么我应该在终端中输入这个吗? git rm .git/refs/stash 2 git commit -m "remove .git/refs/stash 2" 是的——从现在开始,我学会了永远不要将我的项目文件放在 Dropbox 或 iCloud 文件夹中...... 不是git rm,只是简单的rm.git 目录中的文件是 git 的内部状态,让 git 对它们做一些事情就像尝试自己做阑尾切除术:-) 感谢@torek 和@jsexpert 的帮助!我按照描述删除了冲突文件,并且能够再次使用 Git。我从上周失去了一堆进步,但至少我不是从头开始,所以谢谢!

以上是关于致命:参考的格式无效:'refs/stash 2' (128)的主要内容,如果未能解决你的问题,请参考以下文章

日期时间格式无效:1292 日期时间值不正确 [重复]

将无效参数传递给认为无效参数致命的函数

未处理的异常:将无效参数传递给认为无效参数致命的函数。在插入排序中[重复]

致命错误编译:无效的目标版本:9

Maven:致命错误编译:无效的目标版本:1.8

致命错误:值的 java.lang.String 布局无效