0

让我先说我对 git 比较陌生,所以我可能很难正确表达我的情况。

我正在为一个项目做一些工作,我想提交我所做的更改。我继续运行接下来的几个命令:

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

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

    git checkout master

它成功切换到master分支。我以为我当时在一个分支中,我尝试合并它,但这没有奏效,所以我只是继续前进。我推动,一切都是最新的。然后我对其他文件进行了一些快速更改并尝试:

    git commit -am "Add SSL in production"

它是成功的。但是,现在我在最后一次提交之前所做的所有更改都已消失,如果可能的话,我真的很想找回它们。我现在意识到,也许我需要退后一步,真正理解 git,而不是仅仅完成我正在遵循的教程的步骤,但如果可能的话,我真的很想在这个教程上进行调度。如果您有任何想法,我可以如何将我的文件找回来,我真的可以使用您的帮助。

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

4

3 回答 3

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你现在应该能够看到另一个分支的提交。

于 2012-04-24T11:55:37.683 回答
1

如果原因是在没有签出分支的情况下提交更改,也许您可​​以使用git reflog. 其输出的第一列列出了提交的指纹,您可以在其中找到您正在寻找的指纹。在你找到一个你想要恢复的特定提交之后,比如说abc123,你可以通过做一个指向它的分支git branch recovery abc123

于 2012-04-24T11:25:52.797 回答
0

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

git reset HEAD^1

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

于 2012-04-24T11:32:29.687 回答