错误后用git恢复过去的工作

时间:2012-04-24 11:10:41

标签: git github

让我先说一下我对git相对较新,所以我可能难以正确表达我的情况。

我正在为一个项目做一些工作,我想提交我所做的更改。我接着完成了接下来的几个命令:

   git add .
   git commit -m "Finished user signup"

此时,它似乎处理了我的提交并处理了所有更改,插入和删除。然后我继续:

    git checkout master

它成功切换到主分支。当时我以为我曾经在一个分支机构,我尝试合并它,但这没有用,所以我向前迈进了一步。我推了推,一切都是最新的。然后我对其他文件做了一些快速更改并尝试:

    git commit -am "Add SSL in production"

成功了。但是,现在我在最后一次提交之前的所有更改都已消失,如果可能的话我真的想让它们恢复。我现在意识到,也许我需要退后一步,实际上理解git而不是仅仅按照我正在遵循的教程的步骤,但我真的很想在可能的情况下对这个进行重新调整。如果您有任何想法我可以回复我的文件,我可以真正使用您的帮助。

编辑:我尝试使用“git log”查看日志,但它没有显示我想要恢复的提交的任何迹象......

3 个答案:

答案 0 :(得分:1)

如果原因是在未检出分支的情况下提交更改,则可能会使用git reflog跟踪这些缺失的提交。其输出的第一列列出了提交的指纹,您可以在其中找到您要查找的提示。在找到您要恢复的特定提交后,请说abc123,您可以通过执行git branch recovery abc123建立一个指向它的分支。

答案 1 :(得分:1)

根据我的理解,您从主题分支切换到主分支,但您没有合并主题分支的提交。您可以使用git命令merge或rebase执行此操作:

# Be sure you're in the master branch, you should see a star before master
$git checkout master
$git branch
# Now take the commits from the topic-branch
$git rebase TOPIC_BRANCH_NAME

使用$git log,您现在应该可以看到其他分支的提交。

答案 2 :(得分:0)

我认为你需要省略最后一次提交,如果它执行以下操作

git reset HEAD^1

它将省略最后一个头(提交)