1

我丢失了所有分支的 git 中的所有项目数据,我无法恢复它。

我创建了三个分支:'master''distribution''remoteerp'全部具有相同的代码,只是备份)并签出到remoteerp,然后我将稀疏签出配置配置为 true 并将/.git/info/sparse-checkout文件更新到/inoERP/inoerp/www/and /inoERP/inerp/inoerp-server。然后,我从 github 中提取了我的 fork 项目,如下所示:

git remote add -f githubinoerp [github_url_to_my_fork_repo]
git pull githubinoerp master

这导致了 License.txt 和 Copyright.txt 的冲突,并且只在工作目录中显示了这些文件。由于我无法解决合并冲突(我仍在学习 git 作为初学者),我只是尝试使用重置为旧状态,git reset --hard但是它没有改变任何接受说类似sparse-checkout has changed your working directory. 随后签出到其他分支(如分发和主)也不会显示原始文件。我已经尝试了 git reset Head -- hard 和 git reset --hard on(签出后)所有分支,但没有用。

如何将我的项目恢复到旧状态?

4

2 回答 2

4

您仍处于稀疏结帐模式,这就是您看不到文件的原因。

运行命令:

git config core.sparseCheckout false
git read-tree --empty
git reset --hard

这应该将您的结帐恢复为完整。

于 2017-08-22T14:05:36.487 回答
0

看来你必须学会​​合并冲突。冲突在团队项目中非常常见,因此您将来可能会使用它。

在这里你有一个很好的手册来解决冲突:https ://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/

无论如何,您可以通过以下方式检查您以前的状态:

git checkout hash-commit

git log您可以使用(在“ commit ”之后)获取哈希。

这是检查哪个部分失败的一种非常舒适的方法。

编辑:您使用git reset --hard了 ,但也许这不是问题的最后一次提交。你可以使用git reset --hard hash_commit. 如果您之前没有检查提交,则不应使用它,因为您无法撤消此操作。

于 2017-08-22T12:29:16.080 回答