【发布时间】:2015-04-10 07:55:59
【问题描述】:
在最近一次 git 提交和同步之后,我的项目已损坏并且无法构建。请看截图。
有人可以帮忙吗?
问候
【问题讨论】:
-
检查您的工作区,程序是否存在或已删除??
在最近一次 git 提交和同步之后,我的项目已损坏并且无法构建。请看截图。
有人可以帮忙吗?
问候
【问题讨论】:
看起来所有文件都被删除了。 打开您的 git 并查看已删除的文件更改,如果在 eclipse 中将分支重置为 head 并刷新您的工作区。
【讨论】:
我们将损坏的工作区命名为“corruptWorkspace”,要修复的工作区为“fixWorkspace” 您需要做的第一步是创建一个新的工作区来进行恢复并复制对象和引用:
$ mkdir fixWorkspace
$ cd fixWorkspace
$ git init
$ cp ../corruptWorkspace/.git/objects .git -r -a
$ cp ../corruptWorkspace/.git/refs .git -r -a
您可以从这里恢复分支/提交。
通过在 .git\refs\heads 或 .git\logs\HEAD 文件中找到要恢复的分支 在文本编辑器中打开,您将在分支文件中找到该分支的最后一次提交 SHA,或者在 HEAD 文件中找到该分支的最后一条记录的第二个 SHA 列 该命令应该是可读的并显示最后的提交更改
$ git show [commit SHA]
确认分支看起来ok后,尝试检查一下
$ git checkout [branch name]
然后你可以重置分支
$ git reset --hard
此时,您拥有分支的最新提交版本。下一步是恢复存储文件。
通过在 .git\refs\stash 或 .git\logs\stash 文件中找到您想要恢复的存储
在文本编辑器中打开,您将在 stash 文件中找到该 stash 的最后一次提交 SHA,或在 stash 文件中找到分支的最后一个 stash 记录的第二个 SHA 列 列出存储中的文件供您恢复,从这里您可以获取存储位置和文件以用于恢复文件
$ git show --name-only [stash SHA]
恢复隐藏的文件
$ git show [stash SHA]:[full path of file] > [full path of file]
对所有隐藏文件执行上述命令后,您就完成了分支和隐藏文件的获取。如果配置文件没有损坏,您甚至可以复制“原点”定义并推送您的更改。
【讨论】: