恢复由于 "git fetch && git checkout" 而丢失的提交

restore commit lost due to "git fetch && git checkout"

我使用 git (bitbucket) 进行版本控制。我想将项目推送到服务器。我喜欢这样:

git add.
git commit -m "view almost finished"
git push

我发现了一个致命错误。我想可能是因为我的存储库中没有分支。所以我创建了一个分支。然后我做了如下命令。

git fetch && git checkout  create-view
git push

然后,所有新文件都消失了。我尝试从 git 日志中搜索,但没有找到最后一次提交。

如何恢复由于 "git fetch && git checkout" 而导致的最后一次提交?

看起来您在本地提交到另一个分支(可能是 master)而不是创建视图分支。这就是为什么你看不到你的提交。

您有 2 个选择:

1) 回到你所在的上一个分支,看看是否有提交。如果是,您可以 git cherry-pick 提交到 create-view 分支然后推送。

2) 您可以使用 git reflog show 查找本地提交的提交 ID 和 git cherry-pick 提交到创建视图分支然后推送。

您已切换到 create-view 分支。这就是您无法看到更改的原因。要切换回 master 只需 运行、

git checkout master

希望您的所有更改都能恢复。如果您的分支使用其他名称。只需检查 git branch,这将列出您所有的本地分支机构。然后你应该可以切换使用,

git checkout <branch>

在您的终端中执行以下操作:

**git reflog**

这会向您显示所有分支的历史记录及其提交编号等 然后:

**git checkout yourbranchname**

接着是

**git reset --hard yourmaincommitcode**//eg 532b7662

这是一个关于此的教程 issue.It 在我执行 “git fetch && git checkout” 的新手时代帮助了我 在我的 android 工作室终端中,但不理解它的含义,我的所有文件在 android 工作室以及我的项目文件夹中都消失了。 Recovering Lost Commits with git reflog and reset