我认为我在编码生活中犯了最大的错误。 新手行为......
在我的新计算机上工作了3个星期后,我决定将我的代码与我在Bitbucket上已有的代码合并(我应该直接合并,我知道)。我已经通过我的硬盘驱动器将代码(以及其他所有内容)从旧计算机移动到新计算机。移动它们之后,我从旧计算机上做了最后一次提交(所以所有文件都没有同步)。经过这3周的编码后,我在新计算机上通过SmartGit进入我的存储库。
推送时我在SmartGit中收到以下错误:“并非所有引用都被推送”,因为一些旧文件已被更改。
因此,我决定从存储库中取出(使用“获取”)。这使得SmartGit在本地覆盖我的所有文件到旧文件,并删除了我在文件夹中创建的所有新文件:/我是个白痴。不,它说“< rebasing>”在我的SmartGit项目名称旁边。
有没有办法让文件恢复?
答案 0 :(得分:2)
如果您承诺某事,请不要担心,没有简单的方法可以丢失这些更改。当然,不只是拉 - rebase。
如果您未提交更改,并且在工作目录中将这些更改作为修改,则只能丢失更改。或者,如果分阶段它们,则可以轻松重置暂存区域。无论如何,GIT(特别是SmartGit)不会默默地删除这些更改。如果rebase没有冲突,您只会在新提交之上看到您的更改。如果存在冲突,您将直接在工作目录中看到它们。
现在,回到你的情况,正如@mstrap在评论中注意到的那样,去检查你的藏匿处和可回收的提交。你的代码就在那里。如果不是,你可能在描述你的情况时遗漏了一些东西。
答案 1 :(得分:1)
据我所知,git无法推送你的本地提交。因此,如果提交是在本地进行的,您可以这样做:
git reset --hard <tag/branch/commit id>
如果从未提交过,那么我担心你的运气不好:(