卸载Xcode后Git报错及本地提交恢复问题求助
兄弟,先别慌!你的本地提交大概率还在那个.git文件夹里,我之前踩过类似的坑,咱们一步步来解决这些问题:
先把Git重新装回来
卸载Xcode的时候连带把系统自带的Git也删掉了,所以先单独安装Git就行,不用再装Xcode。如果你用Homebrew的话,直接在终端跑:brew install git没有Homebrew的话,去Git官网下载独立安装包也行。装完后先验证下:
git --version,能正常输出版本号就没问题了。修复Git仓库的权限问题
你看到.git文件夹存在但Git识别不了,还有config.lock的报错,基本都是权限不足导致的。先确保你当前在项目根目录(就是包含.git的那个文件夹),然后用下面的命令修复.git文件夹的所有权:sudo chown -R $(whoami):staff /Users/myuser/Desktop/xxxproject/.git输入你的用户密码执行就行,这个命令会把
.git文件夹的权限改成你当前用户所有,解决读写权限的问题。别再执行
git init!抢救现有提交
千万不要跑git init了,这会重新初始化仓库,反而可能破坏现有提交。等权限修复后,先试试git status,如果能正常识别仓库了,直接用git log查看本地提交记录;如果找不到之前的提交,就用git reflog,这个命令能列出所有操作记录,包括你以为丢失的提交、分支切换记录。如果连
git reflog都找不到,那就用Git的文件系统检查命令:git fsck --lost-found这个命令会找出
.git里所有未被引用的对象,包括丢失的提交。执行完后,去.git/lost-found/commits目录下会有一堆哈希值文件,你可以用git show <哈希值>查看每个提交的内容,确认是你要恢复的提交后,就可以把它合并到现有分支或者新建分支保存。后续注意事项
以后卸载Xcode的时候,可以选择保留Git,或者直接用独立安装的Git,避免被连带卸载;另外,.git文件夹是Git仓库的核心,千万别随便删除,哪怕Git报错了,只要它还在,提交就有机会抢救回来。
备注:内容来源于stack exchange,提问作者Navid Shokoufeh

