致命:参考的格式无效:'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)的主要内容,如果未能解决你的问题,请参考以下文章