【发布时间】:2016-10-03 12:37:51
【问题描述】:
我是 git 新手,偶然发现了一个奇怪的问题
所以我对我的本地存储库做了一些提交,并使用 git log 查看了它们,它运行良好。 一段时间后,我检查了一个较旧的提交,后来我想跳回到我最近的提交继续我的工作。所以我又做了一个 git log。 但是现在没有显示最新的 3-4 次提交。 输入“git checkout master”让我看到了第二个日志命令的最新提交,但没有看到我描述的第一个命令的提交。 这是一个问题还是我必须输入另一个命令才能返回到最新的提交?
希望我的问题可以理解。
我按正确的顺序输入的所有命令:
Git 添加公共/
Git 提交 -m “Fo”
(这里没有错误)
Git 日志 --oneline。
输出:8 次提交。
Git 签出“旧提交的 ID”
Git 日志 --oneline。
输出:4 次提交
【问题讨论】:
-
您非常确定您没有对单独/开发分支进行这些更改,或者可能隐藏它们?据我所知;当您的 git 状态显示更改时,您不能简单地签出到另一个状态而不存储您的更改或将它们重置/恢复到 HEAD。如果您确实存储了更改,使用“git pop”应该会返回到您开始存储时的状态。
-
您应该提供您运行的命令的确切顺序以及相关的输出,以便准确定义您所做的事情。然后准确描述您想要拥有的东西。
-
听起来像是一个分离的 HEAD。尝试使用 SourceTree,直到您熟悉这些功能为止。
-
传入更多标志来记录可能会更清晰;试试
git log --oneline --all --graph --decorate之类的东西。答案中还提到了git reflog
标签: git git-commit git-log