首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果Github和Rstudio交互破坏了回购,我如何恢复本地回购文件?

如果Github和Rstudio交互破坏了回购,我如何恢复本地回购文件?
EN

Stack Overflow用户
提问于 2018-01-14 01:04:46
回答 1查看 482关注 0票数 2

我的问题在标题中,以下是帮助git专家回答我问题的细节。我本地回购的两个分支似乎变得“混在一起”:一些文件出现在一个从未出现过的分支上;许多文件已经完全消失了。我的理论是,同时使用两个git连接的应用程序(Github和Rstudio)导致了这个问题--下文将对此进行解释。

我有一个包含几个分支的git项目,让我们集中讨论branch1branch2。在branch2/Applications中,我有数千个文件。branch1没有这样的应用程序文件夹。这是正常情况。

为了准备long-overdue提交并同步到远程,我在本地清理这个项目,主要是在branch2上(通过修改.gitignore并将一些文件移动到非git本地文件夹)。同时,我还使用Github在branch1branch2之间来回切换,几次速度相当于每30秒一次。还打开了一个Rstudio项目(.Rproj),它位于我的repo的本地目录中。注意,这个.Rproj并不存在于branch1__上,但是当我在branch1branch2之间反复切换时,文件仍然处于打开状态。

神秘的是,15000+上的大文件夹( Applications )Applications从文件系统中消失了。我关闭了Github和Rstudio,git进程在高CPU负载下运行了几个小时。我杀了这个过程。

目前令人费解的情况是:

  • branch2/Applications完全失踪了。为什么?我确实将它添加到.gitignore中,但据我的理解,它仍然应该出现在我的本地文件系统上。
  • 虽然它不应该存在,但branch1/Applications现在存在。但是它只包含一小部分应该在15000+上的branch2/Applications文件。为什么?
  • .Rproj文件还“跳过分支”。它现在出现在文件系统中,当branch1被选中时,虽然在今天的问题之前它是一个branch2文件。

我的理论是,我切换的太快(或什么)之间的分支在Github,这不允许Rstudio的git监控“追赶”,并以某种方式本地回购被破坏。

Github和Rstudio是否有可能通过交互破坏本地回购?如果是这样的话,您对我应该如何继续尝试恢复大文件夹有指导吗?我不是git专家,但如果有人有想法,我可以研究命令。我不知道从哪里开始。

FYI大文件夹没有出现在最近的形式上的远程回购,因为它已经这么长时间以来,我上一次推动。所以我不认为我能从那里恢复过来。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-19 19:11:42

以下是我最后为恢复文件所做的工作。(请注意,我实际上不希望这些私有结果文件出现在公共git中,所以我所需要做的就是将它们写到某个磁盘上。)我运行了git log --raw --all,发现了每一行都有原始完整文件路径的缺失文件的完整列表,以及一个SHA。太棒了。然后我写了一个脚本,每一行都包含以下内容

代码语言:javascript
复制
git cat-file -p [SHA] > "/full/path/file.ext"

这将文件类型恢复到它们的原始条件和子目录结构,包括基于文本的文件以及从pdf工作区中保存的tar.gzR对象。

谢谢大家的帮助。最后,可能导致此错误的关键一步是,在切换分支时,我在Github中间中断了git进程,对15000+文件执行存储操作。我想这会让树枝被划掉。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48245811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档