【问题标题】:git sound like deleting my commits after checkout previous onsgit 听起来像是在结帐之前删除我的提交
【发布时间】:2020-11-27 00:10:09
【问题描述】:

我的 git 中有 7 个提交,我签出了第 5 个提交,然后我从中创建了一个分支。 之后第 6 次提交和第 7 次提交消失了吗? 我使用 gui git 应用程序和 git log 检查了主分支和新分支,但在第 6 次和第 7 次提交时我一无所获。

【问题讨论】:

  • 您好,请edit您的问题提供更多详细信息。你运行了什么命令?你的提交树在之前和之后是什么样子的?您希望这些提交出现在哪里?
  • 听起来你一定不是在提交master,而是提交给detached HEAD。你可以只运行git reflog 来查找丢失的提交,然后运行checkout 一个实时分支和cherry-pick 表示提交到它。或者你可以搜索一下,可能有很多场景与你的场景相似,尽管现在还很模糊。
  • 你能分享git log --oneline --graph --all的输出吗?这可以让我理解你提交的结构。

标签: git


【解决方案1】:

如果您有 7 次提交,并且您在第 5 次进行分支,那么您的分支将不会有进一步的提交。查看提交历史记录(假设分支名为 new_branch,而您从 master 分支出来):

    new_branch
      ↓
C4 <- C5 <- C6 <- C7
                  ↑
                master

new_branch 指向第五次提交并且看不到它的后代。尝试使用git log master,它将显示master 分支的历史记录。

请参阅此SO post 以供参考。

【讨论】:

  • @AliHusham 按顺序执行git checkout master 然后git log
  • @AliHusham 正如我所说,您应该从reflogcheckout mastercherry-pick 这些 ID 复制并粘贴缺失提交的 ID 到 master。否则,您只是签出一个提交并最终处于detached HEAD 状态,因此您稍后会再次丢失它。
猜你喜欢
  • 2015-12-01
  • 2014-01-02
  • 1970-01-01
  • 2021-11-22
  • 2011-09-06
  • 1970-01-01
  • 2013-10-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多