【问题标题】:git: lost my working directory after sparse-checkout, pull, merge conflictgit:稀疏签出、拉取、合并冲突后丢失了我的工作目录
【发布时间】:2017-08-22 12:01:18
【问题描述】:

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

我创建了三个分支:'master''distribution''remoteerp'(所有代码都相同,只是备份)并签出到remoteerp,然后我将稀疏结帐配置配置为 true 并更新了@987654325 @文件到/inoERP/inoerp/www//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(签出后)所有分支但没有用。

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

【问题讨论】:

  • 如果您还是初学者,您可能应该远离稀疏结帐等高级功能。
  • 唉,我可以做到这一点,但我正在试验 inoERP,它与 github 上的 repo 相比,具有不同的目录结构(安装后),我只想下载和签出 repo 的子目录这是实际代码。

标签: git pull recovery sparse-checkout


【解决方案1】:

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

运行命令:

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

这应该会恢复您的结帐状态。

【讨论】:

  • 我在这里使用说明:stackoverflow.com/questions/600079/… 并收到错误:稀疏结帐在工作目录上没有条目。这正是我早先从我的工作目录中丢失所有文件之前得到的。注意:我的本地目录是“myerp”,我的远程名称是“githubinoerp”这些说明有什么问题/缺失?引起问题。
  • 这是我的屏幕截图:screencast.com/t/IuQc3gxU
  • 此消息表示您的模式与任何文件都不匹配。在这里搜索它,有很多关于它的问题。据我了解,您不再需要 sparce 结帐。你想达到什么目的?
【解决方案2】:

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

这里有一本很好的解决冲突的手册: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如果您之前没有检查提交,则不应使用此,因为您无法撤消此操作。

【讨论】:

  • 即使现在也无法正常工作,工作目录仍然缺少所有项目文件;和以前一样的情况。截图:screencast.com/t/nc3PCgZ2LNnk
猜你喜欢
  • 1970-01-01
  • 2014-10-07
  • 1970-01-01
  • 1970-01-01
  • 2017-05-29
  • 2014-10-21
  • 1970-01-01
  • 1970-01-01
  • 2014-06-10
相关资源
最近更新 更多