Git 缺少提交

Git missing commits

我是 git 的新手,偶然发现了一个奇怪的问题

所以我对我的本地存储库做了一些提交,并使用 git 日志查看它们,它工作正常。 一段时间后,我检查了一个较旧的提交,后来我想跳回到我最新的提交以继续我的工作。所以我做了另一个 git 日志。 但是现在没有显示最新的 3-4 次提交。 输入 'git checkout master' 使我进入第二个日志命令的最新提交,但没有进入我描述的第一个命令的提交。 这是一个问题还是我必须键入另一个命令才能返回到最新提交?

我希望我的问题是可以理解的。

我按正确顺序输入的所有命令:

Git 添加 public/
Git commit -m “Fo“
(这里没有错误)
Git 日志 --oneline.
输出:8 次提交。
Git 签出“旧提交的 id”
Git 日志 --oneline.
输出:4 次提交

我认为没有人明白您的确切要求,但我认为您可能已经隐藏了您的更改。

类型:

git stash list

那里显示什么,有资料吗?

如果有这样的事情

stash@{0}: WIP on master: 049d078 added the index file

您可以输入:

 git stash apply // for the last stash to be applied
 git stash apply stash@{1} // for the second from last stash 

另外,你可以试试:

git stash pop // apply the stash and then immediately drop it from your stack

以上两者的区别在于 pop 会丢弃堆栈中的存储,但 apply 会保留它以备将来可能重用。

如果您的提交在日志或存储中丢失,您可能重置了 HEAD。

从现在开始,为您的工作做好下一步工作,以免弄乱任何东西。

  • 从更新的主节点检查你的分支

     git checkout -b your_branch_name 
    
  • 完成一些工作后

     git add "name of your file" or git add * (to add all files)
    
  • Git 添加命令使用在工作树中找到的当前内容更新索引,为下一次提交准备暂存内容

    git commit -m "Your message here" 
    
  • 将其推送到远程源

    git push origin your_branch_name 
    

在你 运行 git checkout sha1 之后,你处于分离的 HEAD 状态。使用 git reflog 查找您之前的 HEAD 并 git checkout 查找该 HEAD 或 git reset --hard 查找该 HEAD。

如果您在命名分支上,您可以简单地 git checkout <branch name> 返回。如果您使用的是分离式 HEAD,请改用 git reflog