我已经从所有分支机构丢失了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(在签出后)所有分支但没有用。
如何将项目恢复到旧州?
答案 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
。 如果您之前未检查过提交,则不应使用此,因为您无法撤消此操作。