0

我有一个 git flow 问题。

我在 git 的本地“开发人员”分支上编写了我的代码。然后在工作完成后,我添加了所有更改的文件,然后我将它提交到我的本地分支“开发者”。然后我想结帐到我的本地“master”分支,将新版本从远程“master”分支拉到,然后将新的远程版本与我的“开发者”合并。

但是由于一些未跟踪的文件,从本地“开发人员”向本地“主”结帐的操作被中止。不幸的是,我曾经git clean -f -x -d清理过我的存储库,这删除了所有文件,甚至是已提交的文件。我认为这只会删除未跟踪的。但是,我可以在 git 扩展工具上看到我的提交,但使用git status它表明很多文件已被删除。

我知道清理是不可恢复的,但是当我在清理之前做了一个提交时,我可以通过恢复到我对本地开发人员所做的最后一次提交以某种方式“忽略”我所做的清理吗?

希望有一个可能。

非常感谢提前。

编辑:我做了提供的东西并且它有效。我在我的旧提交中进行了更改。但不幸的是, git clean 删除了项目所需的一些文件夹。现在缺少一些必需的构建路径。此文件夹是空文件夹,但仍需要项目流程。如何读取我所做的清理删除的这些空文件夹?从 origin/master 拉取无效。那里的文件夹可用。

问候,alfi92。

4

2 回答 2

1

你有几个选择:

  1. git reset --hard <commit-SHA>这会将您的分支指针移动到<commit-SHA>. 任何上演的东西git add都会被扔掉。未暂存的修改文件也会被丢弃。这是你能挥动的最大的锤子。实际上,您已经重新克隆了存储库。
  2. git checkout -- .这将恢复从当前目录开始找到的所有已修改文件。未标记为删除的已删除文件git rm将被恢复。这不会从您之前使用的暂存区域中删除任何东西git add。如果您只想恢复以前提交的文件,我会从这个开始。
于 2018-01-12T19:25:17.587 回答
0

如果您知道开发人员分支中最后一次成功提交的 sha 代码。只需使用该 sha 代码进行重置。这应该重置所有指向旧的成功提交的指针,您将恢复您的文件。

git reset --hard shacode(成功提交的)

于 2018-01-12T19:06:55.067 回答