结帐到压缩的提交之一

Checkout to one of squashed commits

在具有压缩合并实践的存储库中,我可以在压缩提交之一中转到存储库的状态吗?

对于下面的示例,我想通过检查提交 r1.

来找到提交 m1
m1 - m2 ------- m3   <- master (r1, r2, and r3 are squashed into m3)
  \            
   r1 - r2 - r3  <- deleted branch

在 git 中,当你压扁提交时,实际上你是从历史中删除它们,所以,你没有任何回滚的机会(据我所知) 但请尝试以下命令:

git log

如果找到您的提交,您可以使用以下命令在临时分支中打开它:

git checkout COMMIT_HASH

您可以使用 git reflog --all。它列出了所有最近的操作和相关的提交哈希。如果你在那里找到提交,你可以 git checkout <commit_hash>.

注意:--all 选项用于列出所有引用的引用,而不仅仅是 HEAD