git:在稀疏结账,拉,合并冲突后丢失了我的工作目录

时间:2017-08-22 12:01:19

标签: git pull recovery sparse-checkout

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

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

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(在签出后)所有分支但没有用。

如何将项目恢复到旧州?

2 个答案:

答案 0 :(得分:3)

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

运行命令:

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

这会将结帐恢复为已满。

答案 1 :(得分:0)

您似乎必须学会合并冲突。 冲突在团队项目中非常普遍,因此您将来可能会使用它。

在这里,您有一本非常好的手册来解决冲突:https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/

无论如何,您可以检查以前的状态:

git checkout hash-commit

您可以使用git log(在" 提交"之后)获取哈希值。

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

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