2

我认为我犯了编码生涯中最大的错误。新手-行为前方..

在我的新计算机上工作了 3 周后,我决定是时候将我的代码与我在 Bitbucket 上已有的代码合并(我知道我应该直接合并)。我已经通过我的硬盘将代码(和其他所有内容)从旧计算机移动到新计算机。移动它们后,我从旧计算机上进行了最后一次提交(因此所有文件都没有同步)。经过这 3 周的编码后,我在新计算机上通过 SmartGit 进入了我的存储库。

推送时,我在 SmartGit 中收到以下错误:“ not all refs has been pushed”,因为一些旧文件已被更改。

因此,我决定从存储库中提取(使用“Fetch”)。这使得 SmartGit 将我在本地的所有文件覆盖到旧文件,并删除了我在文件夹中创建的所有新文件:/ 我是个白痴。

不,它在 SmartGit 中我的项目名称旁边显示“< rebaseing >”。

有什么办法可以找回文件吗??

4

2 回答 2

2

如果您提交了某些内容,请不要担心,没有简单的方法可以丢失这些更改。当然,不仅仅是 pull-rebase。

如果您没有提交更改,并且您将这些更改作为工作目录中的修改,您只能丢失更改。或者,如果您暂存它们,则很容易重置暂存区域。无论如何,GIT(尤其是 SmartGit)不会默默地删除这些更改。如果 rebase 没有冲突,您只会在新提交之上看到您的更改。如果存在冲突,您将直接在工作目录中看到它们。

现在,回到你的情况,正如@mstrap 在评论中注意到的那样,去检查你的 stashes 和 Recyclable Commits。您的代码在某处。如果不是,您可能在描述您的情况时遗漏了一些内容。

于 2016-05-27T03:53:54.120 回答
1

据我了解,git 无法推送您的本地提交。因此,如果提交是在本地进行的,您可以执行以下操作:

git reset --hard <tag/branch/commit id>

如果从未提交过,那么我担心你运气不好:(

于 2016-05-26T01:10:02.337 回答